Tihiroの頭を休めるIT教室

少しだけ頭使って後は根性

PostgreSQLのUPDATE文でWITH句とFROM句が使えることにびっくりした。

概要

タイトルの通りなのですが、PostgreSQLではUPDATE文でWITH句とFROM句が使える模様。 Oracleでは無理だと思います。

環境は

です。

実践

WITH
  with_table AS (SELECT 1 AS no)
UPDATE
  update_table
SET
  update_data = 'xxx'
FROM
  with_table
WHERE
  update_table.no = with_table.no

っていう使い方ができる。 すんごい便利。

まとめ

すんごい便利だけど、(この構文が使えない)他のRDBに移植するときとかを考えると死にたくなる。