您可以使用INSERT IGNORE INTO语句来忽略表中已存在的值。如果表中已经存在具有相同值的行,则INSERT语句不会插入新行。以下是一个示例:
INSERT IGNORE INTO myTable (id, name)
VALUES (1, 'John'), (2, 'Mary'), (1, 'John');
在这个例子中,myTable表中有两列,id和name。第一次插入操作将添加id为1,name为John的新行,第二次插入操作将添加id为2,name为Mary的新行,第三次插入操作将被忽略,因为已经存在具有相同id和name值的行。
请注意,INSERT IGNORE INTO语句仅忽略具有相同主键或唯一索引的行,因此请确保在执行此操作之前为表添加了适当的主键或唯一索引。
INSERT或IGNORE将忽略任何违反UNIQUE约束的行。
唯一的约束是在_id
列上,您没有指定。
如果要防止这两列中出现重复,则必须为表定义添加约束:
ALTER TABLE MyTable
ADD CONSTRAINT unq_MyTable_name UNIQUE (name);
此示例使用 ALTER TABLE
语句将一个名为 unq_MyTable_name
的唯一性约束条件添加到 MyTable
表中的 name
列。请注意,如果要删除唯一性约束,请使用 ALTER TABLE
语句的 DROP CONSTRAINT
子句。
ALTER TABLE [dbo].[ljlldata] DROP CONSTRAINT [unq_MyTable_name]
删除唯一键