MySQL:不存在则插入(mysql没有就插入)
MySQL是一款关系型数据库管理系统,它的一个非常特别的功能是支持不存在则插入(INSERT … ON DUPLICATE KEY)功能。即保证待插入的数据在表中只存在一条,如果不存在,则插入,如果存在,则不做操作。
MySQL的不存在则插入操作需要确保插入的数据中唯一性,即当出现重复时自动执行更新操作。要实现不存在则插入,首先要实现一种判断,查看当前插入的数据是否已存在于表中,如果存在执行更新操作,如果不存在,执行插入操作。
MySQL在INSERT语句中提供了一种不存在则插入的功能,即在INSERT语句的末尾,在ON DUPLICATE KEY的后面添加UPDATE语句(该语句在发生主键或唯一性冲突时执行)。语法格式如下:
INSERT INTO table_name (column_1, column_2)
VALUES (value_1, value_2)ON DUPLICATE KEY UPDATE
column_1=value_1, column_2=value_2;
可以看出,当发生主键或唯一性冲突时,MySQL会自动为我们执行UPDATE语句。
MySQL的不存在则插入功能对开发者来说非常方便,大大简化了程序开发中的工作量,用来替代繁琐的写入和更新两个SQL操作可以提高应用程序的性能,增加工作效率。