三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

sql 插入判断是否唯一的标砖

sql 插入判断是否唯一的标砖

SQL 重复判断机制分析

这段代码使用的是 MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 语法。它根据主键(Primary Key)或唯一索引(Unique Index) 来判断是否重复。

1. 判断逻辑详解

sql

INSERT INTO xxx表 (organization_id, prediction_date, prediction_weight, vehicle_number) VALUES (1, '2025-01-01', '100.5', 10), (2, '2025-01-01', '200.3', 20) ON DUPLICATE KEY UPDATE prediction_weight = VALUES(prediction_weight), vehicle_number = VALUES(vehicle_number)

当执行上述 SQL 时,MySQL 会:

  1. 尝试插入每条记录。

  2. 如果插入时触发了主键冲突唯一索引冲突(即表中已经存在具有相同主键/唯一索引值的记录),则放弃插入,转而执行 UPDATE 子句。

  3. 具体更新 prediction_weight 和 vehicle_number 为插入语句中提供的值。

2. 本例中具体的重复判断依据

从 SQL 语句可以推断,表 xxx中至少存在以下之一:

情况一:联合主键

sql

PRIMA
← 返回列表