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

PostgreSQL INSERT ON CONFLICT UPDATE(upsert)は、除外されたすべての値を使用します

    PostgresはINSERT OR REPLACEに相当するものを実装していません 。 ON CONFLICTから ドキュメント(私の強調):

    DO NOTHING、または正確な詳細を指定するDOUPDATE句のいずれかです。 競合が発生した場合に実行されるUPDATEアクションの例。

    交換の省略形はありませんが、ON CONFLICT DO UPDATE 既存のデータに基づいて新しい値を設定できるため、より一般的に適用されます。例:

    INSERT INTO users (id, level)
    VALUES (1, 0)
    ON CONFLICT (id) DO UPDATE
    SET level = users.level + 1;
    



    1. PostgreSQL:シリアルvsアイデンティティ

    2. Oracleで現在開いているカーソルを見つける方法

    3. Postgresに特定のインデックスを使用させるにはどうすればよいですか?

    4. ループせずにphpとmysqlを使用してスコアテーブルから誰かの「ランク」を取得する最善の方法