2

insert into where not exists を使用して、MSSQL および Postgresql DB に一意のレコードを挿入しようとしています。しかし、以下に示すように、間違った構文エラーが発生します。私は何を間違っていますか?

INSERT INTO settings (id, title, description)
VALUES  (1, 'imageHeight', 'Image Height')
WHERE NOT EXISTS (Select * from settings where id = 1);

エラー: [マクロメディア][SQLServer JDBC ドライバー][SQLServer]キーワード 'WHERE' 付近の構文が正しくありません。

4

1 に答える 1

5

これを試して:

INSERT INTO settings (id, title, description)
    SELECT 1, 'imageHeight', 'Image Height'
        WHERE NOT EXISTS (SELECT 1 FROM settings WHERE id = 1);

SQLサーバーのSQLフィドル

postgresql sql フィドル

WHERE通常はINSERT操作に関係のない結果のフィルターです。

于 2013-01-30T23:55:34.553 に答える