同じユニークな識別子を持つテーブルにいくつかの行を挿入しようとしていますが、他のフィールドはすべて異なります(行はマップ上のポイントを表し、同じ名前を持つようになります)。私が最後にしたいのは、問題の行を何らかの形で変更して、一意の識別子を持つようにすることです( "name0"、 "name1"、 "name2"などのように、挿入コマンド。重複した識別子を持つ行を挿入するうまい方法がありますか?
私は最近、Postgresの "ON CONFLICT"サポートが追加されていることを認識していますが、それは私が探しているものではありません。
Postgres 9.6 Documentationによると:
CONFLICT句ONオプションは、ユニークな違反または排他制約違反エラーを上げるに代替アクションを指定します。挿入のために提案された個々の行ごとに、挿入が進むか、または代替conflict_actionが実行されます。 ... ON CONFLICT DO UPDATEは、挿入のために提案された行と競合する既存の行を、の代替アクションとして更新します。 ON競合機能がないように私は何をしたいことは1)問題のある行または挿入自体と 2を変更するのいずれか)、代わりに更新でそれを置き換えるの(挿入を続行さ
)。これを達成するエレガントな方法はありますか?あるいは、私はもっと複雑なものを書く必要がありますか?