insert into on duplicate key update 根据联合主键 覆盖记录 测试代码
时间: 2024-06-19 10:02:12 浏览: 236
insert into on duplicate key update 是一种MySQL中的语法,用于向表中插入数据,当唯一索引或主键发生冲突时,执行更新操作,否则执行插入操作。可以使用该语法来实现对重复数据进行更新的操作。
以下是一个测试代码示例,其中涉及到一个联合主键(id和name),如果插入的记录在表中已经存在,则会执行更新操作。
```
CREATE TABLE test (
id INT,
name VARCHAR(20),
age INT,
PRIMARY KEY (id, name)
);
INSERT INTO test (id, name, age) VALUES (1, 'Tom', 20)
ON DUPLICATE KEY UPDATE age = 21;
INSERT INTO test (id, name, age) VALUES (2, 'Lucy', 22)
ON DUPLICATE KEY UPDATE age = 23;
INSERT INTO test (id, name, age) VALUES (1, 'Tom', 24)
ON DUPLICATE KEY UPDATE age = 25;
SELECT * FROM test;
```
在上面的代码中,第一条insert语句插入了一条记录,此时表中只有一条记录。第二条insert语句也插入了一条记录,此时表中有两条记录。第三条insert语句尝试插入的记录与第一条语句插入的记录冲突,因此会执行更新操作。最后的select语句会输出表中的所有记录。
阅读全文