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

挿入無視をエミュレートし、postgresqlを使用して重複キー更新(SQLマージ)を行う方法は?

    PostgreSQL 9.5では、これはネイティブ機能になりました(MySQLが数年前から持っていたように):

    INSERT ... ON CONFLICT DO NOTHING / UPDATE( "UPSERT")

    9.5は、「UPSERT」操作のサポートをもたらします。INSERTは、ON CONFLICT DO UPDATE/IGNORE句を受け入れるように拡張されています。この条項は、重複違反が発生した場合に実行する代替アクションを指定します。

    ...

    新しい構文のさらなる例:

    INSERT INTO user_logins (username, logins)
    VALUES ('Naomi',1),('James',1) 
    ON CONFLICT (username)
    DO UPDATE SET logins = user_logins.logins + EXCLUDED.logins;
    


    1. MySQLforMoodleを監視するためのヒント

    2. PDO MySQL:PDO ::ATTR_EMULATE_PREPARESを使用するかどうか?

    3. MySQLで英数字以外の文字のみを含む行を返す2つの方法

    4. Djangoで大文字と小文字を区別しない一意のモデルフィールド?