共计 1229 个字符,预计需要花费 4 分钟才能阅读完成。
在 MySQL 数据库中,有时我们需要在插入数据时判断数据是否已经存在。
如果数据存在,则更新数据;
如果数据不存在,则插入新数据。
实现方法
使用 ON DUPLICATE KEY UPDATE
在 INSERT 语句后添加 ON DUPLICATE KEY UPDATE 子句可以实现这一需求。当要插入的行与表中现有记录的唯一索引或主键产生重复值时,就会发生旧行的更新;如果插入的行数据与现有表中记录的唯一索引或主键不重复,则执行新纪录插入操作。
采用“ON DUPLICATE KEY UPDATE”,查看手册 (https://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html)
示例代码
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3)
ON DUPLICATE KEY UPDATE column2 = value4, column3 = value5;
注: 主键:column1
使用 REPLACE INTO
REPLACE INTO 语句的功能类似于 INSERT INTO,不同之处在于:REPLACE INTO 首先尝试将数据插入到表中,如果发现表中已经有此行数据(根据主键或唯一索引判断),则先删除此行数据,然后插入新数据。否则,直接插入新数据。
示例代码:
REPLACE INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);
使用 INSERT IGNORE INTO
当插入数据时,如果数据存在,则忽略冲突的这行数据插入,其他插入正常执行。前提条件是插入的数据字段设置了主键或唯一索引。 文章来源:https://www.toymoban.com/diary/sql/4.html
示例代码:
INSERT IGNORE INTO table_name (column1, column2, column3) VALUES (value1, value2, value3)
在实际应用中,可以根据具体需求选择合适的方法。需要注意的是,在使用 ON DUPLICATE KEY UPDATE 和 REPLACE INTO 时,要确保表中存在唯一索引或主键,否则可能导致数据重复或死锁等问题。 文章来源地址 https://www.toymoban.com/diary/sql/4.html
到此这篇关于 MySQL 数据库实现数据存在则更新,不存在则插入的实用方法的文章就介绍到这了, 更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持 TOY 模板网!
原文地址:https://www.toymoban.com/diary/sql/4.html
如若转载,请注明出处:如若内容造成侵权 / 违法违规 / 事实不符,请联系站长进行投诉反馈,一经查实,立即删除!