insert into ... on duplicate key update 批量更新
时间: 2024-10-22 10:00:48 浏览: 42
INSERT INTO .. ON DUPLICATE KEY更新多行记录
在SQL中,`INSERT INTO ... ON DUPLICATE KEY UPDATE` 是一种高效的插入和批量更新策略,它结合了`INSERT`和`UPDATE`操作。当你尝试将数据插入到存在唯一键约束的表中时,如果遇到重复的键,而不是像常规的`INSERT`那样抛出错误,这个语句会更新对应的行,而不是插入新的行。
例如,假设有一个用户表(`users`),`email`字段有唯一索引,你想添加一些新用户,如果有相同的邮箱,则只更新他们的信息:
```sql
INSERT INTO users (email, name, age)
VALUES ('example@email.com', 'John Doe', 30),
('example@email.com', 'Jane Smith', 25)
ON DUPLICATE KEY UPDATE name = VALUES(name), age = VALUES(age);
```
这里,如果第一个`example@email.com`已经存在于表中,那么它的`name`和`age`将分别更新为'John Doe'和30。
阅读全文