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

コピーcsvpostgresqlでデータの重複を防ぐための最良の方法

    アップサート

    Linoffによる回答 は正しいですが、Postgres9.5の新しい「UPSERT」機能 によって少し簡略化できます。 (別名 MERGE )。この新機能は、Postgresに<として実装されています。 code> INSERT ON CONFLICT 構文。

    一意のインデックスの違反を明示的にチェックするのではなく、 ON CONFLICT を許可することができます 句は違反を検出します。次に、何もしない 、つまり、 INSERTへの取り組みを放棄することを意味します UPDATEをわざわざ試みることなく 。したがって、挿入できない場合は、次の行に移動します。

    Linoffのコードと同じ結果が得られますが、 WHEREは失われます 条項。

    INSERT INTO bigtable(col1, … )
        SELECT col1, …
        FROM stagingtable st
    ON CONFLICT idx_bigtable_col1_col2_col
    DO NOTHING
    ;
    


    1. パート1:jQuery-> MySQL-> jQuery-> HTML

    2. java.security.AccessControlException:アクセスが拒否されました(java.security.SecurityPermission authProvider.SunMSCAPI)

    3. VARRAY内に値が存在するかどうかを確認する方法

    4. .NET用のMySQLコネクタへの参照を追加するにはどうすればよいですか?