Mysql 插入数据忽略已存在数据

发布时间 2024-01-11 16:31:20作者: Kllin

MySQL的INSERT IGNORE INTO语句用于向表中插入数据,如果数据已经存在,则忽略插入操作而不报错。以下是INSERT IGNORE INTO语句的基本语法:

INSERT IGNORE INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

这里的table_name是要插入数据的表名,(column1, column2, ...)是要插入的列名,(value1, value2, ...)是要插入的对应值。

当执行INSERT IGNORE INTO语句时,如果要插入的数据在表中已经存在(根据唯一索引或主键进行判断),则该行数据将被忽略,不会导致重复插入错误。

以下是一个示例,假设有一个名为students的表,包含idname两列,其中id是主键:

INSERT IGNORE INTO students (id, name)
VALUES (1, 'Alice'),
       (2, 'Bob'),
       (3, 'Charlie');

在这个示例中,我们向students表插入了三行数据,但如果表中已经存在相同的id值,那么这些行将被忽略。

请注意,INSERT IGNORE INTO语句只在插入操作时忽略已存在的数据,其他操作(如更新)仍然会执行。此外,如果插入操作导致了任何其他错误(例如数据类型不匹配),则会抛出相应的错误。