私はいくつかの SQL を MySQL で動作させようとしていますが、この挿入ステートメントで問題が発生しています:
INSERT INTO properties (fkid, name, value)
SELECT 3, 'foo', 'bar'
WHERE NOT EXISTS (
SELECT 1 FROM properties WHERE fkid = 3 AND name = 'foo'
)
fkid/name が既に存在する場合は何もしないはずです。Postgres でも動作するものが必要です。私は今、私には見えない愚かな何かがあると確信しています。
価値があるのは、エラーは次のとおりです。
You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near
'WHERE NOT EXISTS (SELECT 1 FROM vertex_properties WHERE vertex_id = 4 AND name ='
このサイトでここで見ることができる他の例から、それはうまくいくはずです。誰かが私を悲惨な状況から解放してください。
編集:明確にするために、クロスプラットフォーム(Postgres/MySQL)の「存在しない場合は挿入」ソリューションが必要です。INSERT IGNORE ...
MySQL でのみ機能しINSERT ... SELECT WHERE NOT EXISTS ...
、Postgres でのみ機能するようです。