PostgreSQLのReturning句について
調査したことをメモ代わりに残す。
Returing句
Postgresqlの独自拡張で、insert,update,deleteの結果を返す機能。Postgresqlの8.2から利用可能。
DMLの最後(文の末尾に)returningを記載することで利用可能。
insert into temp (code,name,create_date) values ('11','test',current_date) returning code,name,create_date
結果として、
code | name | create_date |
---|---|---|
11 | test | システム日付 |
が返ってくる。
利用シーン
テーブルに登録されている条件にマッチしたデータを取得し、CSV出力する。
CSV出力したデータには、出力済みのフラグを立てる。
・・・なんていう場合に便利に使えるかな?(試してないけど)
Javaで使う場合
statementを利用してReturning句付きのDMLを実行する場合、executeUpdateを利用するとRetruning句の結果が取得出来ないので、executeを使うと良いみたい。