2
我有以下查询更新表记录设置新的外键,如果该外键和外键2尚不存在。这应该很好,但是,我该如何修改以删除特定的pkID记录,如果它存在的话?插入,如果不存在,但删除,如果它存在
表结构:
+----------------+
| table |
+----------------+
| pkID |
| foreignKey |
| foreignKey2 |
+----------------+
查询:
UPDATE table a
SET a.foreignKey = 2
WHERE a.pkID = 1234
AND NOT EXISTS (
SELECT 1
FROM table b
WHERE b.foreignKey = 2
AND b.foreignKey2 = a.foreignKey2
)
您插入,如果它不存在,不更新。 – 2011-02-04 21:50:19
所以你想做一个破坏性的upsert? `MERGE`在2008年会有帮助,但在2005年.. – RichardTheKiwi 2011-02-04 22:02:31