当主键或唯一键冲突时,Mysql可以进行更新、删除新增、忽略插入等操作。
当主键或唯一键冲突时,可以指定更新内容。
INSERT INTO table_name (column_name, column_name, column_name)
VALUES (column_value, column_value,column_value)
ON DUPLICATE KEY UPDATE column_name = column_value;
- INSERT INTO t_user (id, name, age)
- VALUES (1, '张三', 23)
- ON DUPLICATE KEY UPDATE id = VALUES(id);
当主键或唯一键冲突时,先删除原始数据,再重新新增。
REPLACE INTO table_name (column_name, column_name, column_name)
VALUES (column_value, column_value,column_value);注意:
自增主键的表,唯一键冲突时会导致主键递增变更。
- REPLACE INTO t_user (id, name, age)
- VALUES (1, '张三', 23);
当主键或唯一键冲突时,可以直接忽略此新增操作。
INSERT IGNORE INTO table_name (column_name, column_name, column_name)
VALUES (column_value, column_value,column_value);
- INSERT IGNORE INTO t_user (id, name, age)
- VALUES (1, '张三', 23);
insert ignore into .. > replace into .. > insert .. on duplicate key update ..。