テーブルレコードを更新するために、そのforeignKeyとforeignKey2が存在しない場合に新しいforeignKeyを設定するための次のクエリがあります。しかし、これはうまくいくはずですが、その特定のpkIDレコードが存在する場合は、それを削除するためにどのように変更できますか?存在しない場合はINSERT、存在する場合は削除
テーブル構造:
+----------------+
| 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
)
INSERTがまだ存在しない場合は更新しません。 –
あなたは破壊的なアップサーートをしたいですか? 2008年の 'MERGE'はここで助けてくれましたが、2005年です。 – RichardTheKiwi