Mysql 新增更新、删除新增、忽略

当主键或唯一键冲突时,Mysql可以进行更新、删除新增、忽略插入等操作。

1.更新

当主键或唯一键冲突时,可以指定更新内容。

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);

2.删除新增

当主键或唯一键冲突时,先删除原始数据,再重新新增。

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);

3.忽略

当主键或唯一键冲突时,可以直接忽略此新增操作。

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); 

4.执行效率

insert ignore into ..  > replace into .. > insert .. on duplicate key update ..。

你可能感兴趣的:(mysql,mysql,数据库)