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

PostgreSQLの複数値のアップサート

    複数値のアップサートは間違いなく可能であり、挿入...競合時...が実装された理由の重要な部分です。

    CREATE TABLE table1(col1 int, col2 text, constraint theconstraint unique(col1));
    
    INSERT INTO table1 VALUES (1, 'parrot'), (4, 'turkey');
    
    INSERT INTO table1 VALUES (1, 'foo'), (2,'bar'), (3,'baz')
    ON CONFLICT ON CONSTRAINT theconstraint
    DO UPDATE SET col2 = EXCLUDED.col2;
    

    結果

    regress=> SELECT * FROM table1 ORDER BY col1;
     col1 | col2 
    ------+------
        1 | foo
        2 | bar
        3 | baz
        4 | turkey
    (4 rows)
    

    ドキュメントが不明確な場合は、pgsql-generalメーリングリストに適切なフィードバックを送信してください。またはさらに良いことに、ドキュメントへのパッチを提案します。



    1. MySQLは配列内の特定のJSONオブジェクトを更新します

    2. Ectoに生のSQLをログに記録させることはできますか?

    3. PerfToolsのRACインスタンスを覚えておいてください

    4. 返すべき数値の代わりに'リソースID#12を返すMYSQLクエリ