はじめに
SQL文(SELECT文)を実行してSQL文(UPDATE文)を作成します。
SELECTした結果を基にSQLを作成したい場合などに使えます。
前まではEXCELに取り込んでSQLを作成していましたが、これのおかげで手間が減りました。知っていればどうという事はないですが。。
入力
SELECT '今回書きたいこと' FROM table WHERE condition;
出力
?column?
------------------------------------------------------------------------------
UPDATE table2 SET column3 = 'value1_1' WHERE column4 = 'value2_1';
UPDATE table2 SET column3 = 'value1_2' WHERE column4 = 'value2_2';
UPDATE table2 SET column3 = 'value1_3' WHERE column4 = 'value2_3';
....
動作環境
記事作成に利用した環境はPostgreSQLです。
gexecコマンドはPostgreSQL 9.6以上で利用可能です。
どのように?
以下のようにSELECTリスト(SELECTとFROMの間にあるキーワード)で文字列連結を利用してUPDATE文を作成します。
SELECT 'UPDATE table2 SET column3 = ''' || value1 || ''' WHERE column4 = ''' || value2 || ''';' FROM table WHERE condition;
そのまま結果を実行したい場合は上記のSELECT文に\gexecを付けます。