INSERT INTO … ON DUPLICATE KEY UPDATE如何使用
时间: 2024-05-29 13:07:38 浏览: 111
Mysql中Insert into xxx on duplicate key update问题
5星 · 资源好评率100%
INSERT INTO ... ON DUPLICATE KEY UPDATE 是 MySQL 中一种常用的数据插入和更新语句。当你想要往一个数据库表中插入一条新数据时,如果该数据的主键或唯一键已经存在,则会执行更新操作;否则,就会插入一条新记录。
例如,假设你有一个名为 users 的数据库表,其中有三个字段:id(主键)、name 和 age。下面是一个使用 INSERT INTO ... ON DUPLICATE KEY UPDATE 插入或更新记录的例子:
```
INSERT INTO users (id, name, age) VALUES (1, 'John', 30) ON DUPLICATE KEY UPDATE name='John', age=30;
```
在上述例子中,如果 id 为 1 的记录不存在,则会插入一条新记录;否则,会将 name 和 age 更新为 'John' 和 30。
如果你需要插入的数据比较复杂,可以使用 SELECT 语句来作为插入的值。例如:
```
INSERT INTO users (id, name, age) SELECT 1, 'John', 30 FROM dual WHERE NOT EXISTS (SELECT * FROM users WHERE id = 1) ON DUPLICATE KEY UPDATE name='John', age=30;
```
在上述例子中,如果 id 为 1 的记录不存在,则会插入一条新记录;否则,会将 name 和 age 更新为 'John' 和 30。
阅读全文