Sql 如何防止重复记录

Sql 如何防止重复记录,sql,Sql,如何在插入时防止重复记录?需要一个解决方案,而不是设置唯一这是可能的,尽管与将列更改为唯一相比相当冗长。 您可以这样做,将所有数据插入一个临时表,并将其与目标表进行比较。 并过滤掉所有重复记录 CREATE TABLE YOURTABLE (ID INT); INSERT INTO YOURTABLE VALUES (10),(20),(30),(40),(50),(60); CREATE TABLE TEMP (ID INT); INSERT INTO TEMP VALUES (10),(

如何在插入时防止重复记录?需要一个解决方案,而不是设置唯一

这是可能的,尽管与将列更改为唯一相比相当冗长。 您可以这样做,将所有数据插入一个临时表,并将其与目标表进行比较。 并过滤掉所有重复记录

CREATE TABLE YOURTABLE (ID INT);
INSERT INTO YOURTABLE VALUES (10),(20),(30),(40),(50),(60);


CREATE TABLE TEMP (ID INT);
INSERT INTO TEMP VALUES (10),(20),(80),(90),(100),(110);


INSERT INTO YOURTABLE
  SELECT T.* FROM YOURTABLE Y RIGHT OUTER JOIN TEMP T ON T.ID = Y.ID 
  WHERE Y.ID IS NULL

 DELETE FROM TEMP;

发生了什么样的重复插入?单个SQL插入会导致重复的实体吗?两个相互竞争的线程都在插入相同的记录?用户多次点击“插入”按钮?所以你想要唯一性而不是唯一性?这加起来怎么样?请更准确地描述你有什么、你想要什么、你已经尝试过什么以及你在这方面遇到了什么问题。欢迎使用代码片段。考虑提供DDL以及测试数据。不,我希望避免插入重复的记录。或者我想检查它存在的每一个记录和字段,或者NoTI想知道它是在不添加唯一的情况下完成的。这是什么意思“添加唯一”?限制指数您可以编写检查唯一性的触发器。但是为什么您不想要DBMS提供的标准方式呢?它肯定比你在上面修补的任何东西都更快更安全。