1. ホーム
  2. sql

[解決済み] SQLiteでIF NOT EXISTSを行う方法

2023-07-31 12:12:58

質問

私はこの行をMS SQL ServerからSQLiteに移植しようとしています。

IF NOT EXISTS(SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received') 
    INSERT INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');

SQLiteはIF NOT EXISTSをサポートしていないか、少なくとも私はそれを動作させることができないようです。 私は何か単純なことを見逃しているのでしょうか? 回避策はあるのでしょうか?

どのように解決するのですか?

これはどうでしょうか?

INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received'

(SQLiteを持っていないので未検証ですが...) このリンク はかなり説明的です)。

さらに、これもうまくいくはずです。

INSERT INTO EVENTTYPE (EventTypeName)
SELECT 'ANI Received'
WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');