on duplicate key update 联合唯一索引
时间: 2024-03-09 16:42:16 浏览: 106
Mysql 原生语句中save or update 的写法汇总
on duplicate key update 是一种在插入数据时,如果遇到唯一索引冲突,则执行更新操作的语法。它可以用于在插入数据时,如果遇到重复的唯一索引值,可以选择更新已存在的记录,而不是插入新的记录。
具体来说,当使用 on duplicate key update 语法时,如果插入的数据行违反了唯一索引的约束条件,就会触发唯一索引冲突。此时,MySQL会执行更新操作,将已存在的记录更新为新插入的数据。
on duplicate key update 语法的基本用法如下:
```
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE column1 = value1, column2 = value2, ...
```
其中,table_name 是要插入数据的表名,column1、column2 是要插入数据的列名,value1、value2 是要插入的具体数值。在 ON DUPLICATE KEY UPDATE 子句中,可以指定要更新的列和对应的新值。
例如,假设有一个表 students,其中有一个唯一索引是学生的学号(student_id),我们可以使用 on duplicate key update 语法来插入或更新学生信息:
```
INSERT INTO students (student_id, name, age)
VALUES (12345, 'John', 20)
ON DUPLICATE KEY UPDATE name = 'John', age = 20
```
如果表中已存在学号为 12345 的学生记录,则会将该记录的姓名和年龄更新为新的值。
阅读全文