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

PostgreSQLを使用して同じクエリの複数の行を更新する

    update ... fromを使用することもできます 構文を作成し、マッピングテーブルを使用します。複数の列を更新する場合は、はるかに一般化できます:

    update test as t set
        column_a = c.column_a
    from (values
        ('123', 1),
        ('345', 2)  
    ) as c(column_b, column_a) 
    where c.column_b = t.column_b;
    

    列はいくつでも追加できます:

    update test as t set
        column_a = c.column_a,
        column_c = c.column_c
    from (values
        ('123', 1, '---'),
        ('345', 2, '+++')  
    ) as c(column_b, column_a, column_c) 
    where c.column_b = t.column_b;
    

    sqlフィドルデモ



    1. NULL値はデータベース検索のパフォーマンスにどのように影響しますか?

    2. JDBC接続に失敗しました、エラー:ホストへのTCP/IP接続に失敗しました

    3. パラメータ値を使用してOracleストアドプロシージャの呼び出しをログに記録/トレースするにはどうすればよいですか?

    4. Oracleテーブル変数/配列から値を選択しますか?