行が存在するかどうかを確認する必要があります。存在しない場合は挿入する必要があります。行が存在しない場合は挿入するelseはポストグルに挿入しない
これはpostgres
にあり、シェルスクリプトを通して行を挿入しようとしています。スクリプトを実行すると、エラーは表示されませんが、一致する行がない場合でもテーブルに挿入されません。
行が存在するかどうかを確認する必要があります。存在しない場合は挿入する必要があります。行が存在しない場合は挿入するelseはポストグルに挿入しない
これはpostgres
にあり、シェルスクリプトを通して行を挿入しようとしています。スクリプトを実行すると、エラーは表示されませんが、一致する行がない場合でもテーブルに挿入されません。
私は、彼らがhere
INSERT INTO table (id, field, field2)
SELECT 3, 'C', 'Z'
WHERE NOT EXISTS (SELECT 1 FROM table WHERE id=3);
私はこの解決策を試しましたが、それより低いバージョンのものとしては機能しません。したがって、私はそれらを両方とも2つの異なるクエリに分割したいと考えました。 – JumpOffBox
Postgresには、行を挿入または更新できるUpsertコマンドが追加されました。 https://wiki.postgresql.org/wiki/UPSERT –
9.5以降では、「INSERT ... ON CONFLICT DO NOTHING」または「INSERT ... ON CONFLICT UPDATE' https://stackoverflow.com/a/17267423/1386245 – Rohmer
に言及ソリューションを好むは、使用しているスクリプトとあなたが「一致する行」がないかどうかをテストするために使用している文を投稿してください。 – Aushin
このリンクを参照してくださいhttp://stackoverflow.com/questions/4555966/merge-syntax-used-to-upsert-or-insert-on-duplicate-update – Kuberchaun
スクリプト言語としてRubyを使用できる場合は、 'Upsert'](https://github.com/seamusabshere/upsert) –