sql >> データベース >  >> RDS >> PostgreSQL

2つの列のいずれかで競合が発生した場合にPostgresでアップサートするにはどうすればよいですか?

    はい。この動作はデフォルトです。一意の制約違反は競合を構成し、次に UPDATE ON CONFLICT DO UPDATEの場合に実行されます が指定されています。 INSERT ステートメントには、 ON CONFLICTを1つだけ含めることができます 句ですが、conflict_target その句の複数の列名を指定できます。各列名には、 UNIQUEなどのインデックスが必要です。 制約。ただし、1つのconflict_actionに制限されています また、そのアクションを処理するときに、どの制約が競合を引き起こしたかについての情報はありません。そのような情報、または制約違反に応じた特定のアクションが必要な場合は、トリガー関数を作成する必要がありますが、そうすると、 INSERT ... ON CONFLICT DO ...> ステートメント。



    1. SQL Server –sp_spaceusedの内部を分析します

    2. 主キーを持つリンクテーブルを追加するVBAコード

    3. CTEから挿入

    4. タブ区切りファイルを関係を使用してmysqlに挿入する方法