MySQL 当插入的数据已存在时,更新该条记录

MySQL 当插入的数据已存在时,更新该条记录

在MySQL数据库中,我们可以使用On Duplicate Key Update语句来实现当插入的数据已存在时,更新该条记录。这个功能可以让我们在插入数据时避免重复数据的出现。同时,也大大提高了数据的操作效率。

阅读更多:MySQL 教程

语法

INSERT INTO table_name (column1, column2, column3,...) 
VALUES (value1, value2, value3,...) 
ON DUPLICATE KEY UPDATE column1=value1, column2=value2, column3=value3,...;
SQL

当插入的数据触发唯一约束条件时,On Duplicate Key Update语句会更新重复的数据。语句中的column1=value1, column2=value2, column3=value3,…表示要更新的字段以及对应的值。

示例

我们先创建一个students表,包含id和name两个字段,并将id字段设置成主键。

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);
SQL

然后,我们插入一些数据。

INSERT INTO students (id, name) VALUES (1, 'Tom');
INSERT INTO students (id, name) VALUES (2, 'Lily');
SQL

接着,我们插入一条重复的数据。

INSERT INTO students (id, name) VALUES (1, 'Jerry') 
ON DUPLICATE KEY UPDATE name='Jerry';
SQL

在这里,我们指定了id=1的记录,在students表中已经存在,所以On Duplicate Key Update语句会首先查找符合条件的记录,然后再更新该记录的name字段。

最后,我们查询students表中的数据。

SELECT * FROM students;
SQL

输出结果:

| id  | name  |
| --- | ----- |
| 1   | Jerry |
| 2   | Lily  |
Mysql

可以看到,通过使用On Duplicate Key Update语句,我们成功地将id为1的记录更新为了Jerry。

总结

On Duplicate Key Update语句非常实用,可以在数据插入时避免重复数据的出现。同时,它也节省了我们大量的时间和精力。如果你在使用MySQL数据库时遇到了一些重复数据的问题,可以尝试使用这个语句来解决问题。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册