SQL:仅插入新记录

Leo*_*Leo 3 mysql sql ms-access-2007

这一定是非常微不足道的,但我似乎找不到解决方案。

我使用两个表,两个表都没有任何主键。

我只想将第一个表的所有记录添加到第二个表中,前提是它们不存在。

基本上:

INSERT INTO Table2
SELECT Table1.*
FROM Table
WHERE "the record to be added doesn't already exists in Table2"
Run Code Online (Sandbox Code Playgroud)

Don*_*nal 5

你可以做这样的事情。您需要检查每个相关列 - 我刚刚输入了 2 作为示例。使用Not Exists子句,您可以检查多列中是否已存在一条记录。使用 a,NOT IN您只能检查某一列是否已存在记录。

INSERT INTO Table2
SELECT t1.*
FROM Table1 t1
WHERE NOT EXISTS 
(
      SELECT 1 
      FROM table2 t2 WHERE 
      t2.col1 = t1.col1 AND 
      t2.col2 = t1.col2
) 
Run Code Online (Sandbox Code Playgroud)