MySQL “INSERT IGNORE” 和 “INSERT … ON DUPLICATE KEY UPDATE”对比

MySQL “INSERT IGNORE” 和 “INSERT … ON DUPLICATE KEY UPDATE”对比

在MySQL中,有两个常见的方式来插入数据,它们分别是”INSERT IGNORE”和”INSERT … ON DUPLICATE KEY UPDATE”。虽然它们都用于插入数据,但是它们的用途和实现方式有所不同。

阅读更多:MySQL 教程

INSERT IGNORE

“INSERT IGNORE”用于在插入数据时忽略掉主键或唯一索引重复的数据。当使用”INSERT IGNORE”执行插入操作时,如果唯一索引已经存在相同的值,则该操作将被忽略而不是引发错误。下面是一个使用”INSERT IGNORE”的示例:

INSERT IGNORE INTO students(id, name) VALUES(1, 'Tom');

如果表中已经存在id为1的数据,则该操作将被忽略,不会插入新的数据。

INSERT … ON DUPLICATE KEY UPDATE

“INSERT … ON DUPLICATE KEY UPDATE”用于在插入数据时检查是否有唯一索引重复的数据,当检查到数据已经存在时则执行更新操作。下面是一个使用”INSERT … ON DUPLICATE KEY UPDATE”的示例:

INSERT INTO students(id, name) VALUES(1, 'Tom') 
ON DUPLICATE KEY UPDATE name = 'Jack';

如果表中已经存在id为1的数据,则该操作将更新该行数据的name为’Jack’。

总结

“INSERT IGNORE”主要用于要求插入数据而不想在遇到唯一索引冲突时上报错误的情况,而”INSERT … ON DUPLICATE KEY UPDATE”用于在发生唯一索引重复时执行更新操作。两者的应用场景有所不同,需根据实际业务需求进行选择。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程