MySQL 的 INSERT...ON DUPLICATE KEY UPDATE 语句可以在插入新记录时,如果发现已经存在一个具有相同唯一索引或主键的记录,则更新该记录而不是插入新记录。

语法如下:

INSERT INTO table_name (col1, col2, col3) VALUES (val1, val2, val3)
  ON DUPLICATE KEY UPDATE col1=new_val1, col2=new_val2, col3=new_val3;

其中,table_name 为表名,col1, col2, col3 为列名,val1, val2, val3 为要插入的值,new_val1, new_val2, new_val3 为要更新的值。

使用该语句时,需要保证表中有一个唯一索引或主键,以便判断是否已经存在记录。如果出现冲突,则会执行 UPDATE 语句更新已有记录,否则执行 INSERT 语句插入新记录。

示例:

INSERT INTO users (id, name, age) VALUES (1, 'Tom', 25)
  ON DUPLICATE KEY UPDATE name='Tom', age=26;

如果 users 表中已经存在 id 为 1 的记录,则会更新该记录的 nameage 字段,否则会插入一条新记录。

MySQL INSERT...ON DUPLICATE KEY UPDATE 语法详解与示例

原文地址: https://www.cveoy.top/t/topic/lUHu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录