MySQL on DUPLICATE key update 是什么意思
时间: 2024-12-15 20:28:23 浏览: 8
[] - 2022-06-11 为什么不建议使用ON DUPLICATE KEY UPDATE?.pdf
`ON DUPLICATE KEY UPDATE` 是 MySQL 中的一个特性,它用于 `INSERT INTO ... ON DUPLICATE KEY UPDATE` 语句。当尝试在一个已经存在唯一索引的表中插入新行时,如果发现键值已存在(即发生“冲突”),MySQL 会采取以下操作:
1. **插入新行**:
如果指定的列组未违反其他约束(如外键或检查约束),则会插入新的数据。
2. **更新已有行**:
如果指定的列组匹配到已存在的唯一键,则仅更新那些列的值,而不是插入一个新的行。
这个特性常用于批量导入数据并自动更新已有记录,而无需显式地检查每个键是否已经存在。
例如:
```sql
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE column2 = NEW.column2, column3 = NEW.column3;
```
在这里,如果 `column1` 已经存在于表中,那么对应的 `column2` 和 `column3` 将会被更新为新值。
阅读全文