0

我有一张这样的桌子:

PermTable
Col1 Primary Key
Col2 Primary Key
Col3 Primary Key
Other rows

我正在将文件中的数据加载到与 PermTable 具有基本相同结构的临时表中:

TempTable
Col1 Primary Key
Col2 Primary Key
Col3 Primary Key
Other rows

我希望从 PermTable 中删除 PermTable 中不存在于 TempTable 中的任何行

我使用的 SQL 是:

DELETE FROM PermTable WHERE NOT EXISTS
  ( SELECT NULL FROM TempTable
    WHERE TempTable.Col1 = PermTable.Col1
     AND TempTable.Col2 = PermTable.Col2
     AND TempTable.Col3 = PermTable.Col3 )

这是行不通的。它删除的内容超出了应有的范围。

4

1 回答 1

0

截断 PermTable 并将所有临时记录插入其中不是更简单吗?

TRUNCATE TABLE PERMTABLE -- 删除所有记录 INSERT INTO PERMTABLE (SELECT * FROM TEMPTABLE) -- 结构相同...

特别是因为您正在用临时表替换 permtable 的内容?

于 2013-02-26T14:32:19.420 回答