on duplicate key update 用法 mysql
时间: 2024-08-16 10:05:29 浏览: 50
Mysql 原生语句中save or update 的写法汇总
`ON DUPLICATE KEY UPDATE` 是 MySQL 中的一种事务控制语句,常用于 `INSERT ... ON DUPLICATE KEY UPDATE` 语句中,其目的是在试图插入数据到具有唯一键约束的表时提供一种行为策略。当试图插入的记录与表中已经存在的唯一键相匹配时,MySQL 不再插入新的记录,而是更新匹配的关键字段。
这个用法的基本结构如下:
```sql
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE column_to_update = new_value
```
- `table_name`: 需要插入数据的目标表名。
- `column1, column2, ...`: 要插入或更新的列。
- `(value1, value2, ...)`: 对应列的新值。
- `column_to_update`: 如果有唯一键冲突,你想要更新的特定列。
- `new_value`: 该列在冲突时的新值。
例如,如果你有一个用户表,`username` 是唯一键,你想避免创建重复的用户名,你可以这样做:
```sql
INSERT INTO users (username, email) VALUES ('test', 'test@example.com')
ON DUPLICATE KEY UPDATE email = 'new_email@example.com';
```
这将尝试插入一个新用户,如果 'test' 已经存在,则更新 email 为 'new_email@example.com'。
阅读全文