知らなかった!SELECT文の結果をINSERTする方法
今回はSQLです。(postgresqlを使用)
本番環境のマスタースクリプトを更新する作業があったのですが、本番環境のデータは参照できないので
正規表現などで一気にスクリプトファイルを組むわけにもいかずもやもやしてました。
調べた結果SELECT-INSERTなるものがあったのですね!
(DB周りは他の人が担当してたので詳しい知識はなかった orz)
こんなテーブルやレコードがあるとします。
insert_table
id | colomn2 | colomn3 |
---|---|---|
null | null | null |
select_table
id | birthday | job |
---|---|---|
1 | 1995/01/01 | developer |
2 | 1996/01/01 | lawyer |
3 | 1997/01/01 | docter |
やりたい事はinsert_tableにselect_tableのidを反映したい場合です。
固定値が混ざったレコードを登録したい場合はSELECT文に固定値を書き込めばいいです。
-
- insert_table(登録したいレコードのテーブル
- select_table(既に存在するテーブル)
INSERT INTO insert_table( id, column2, column3 ) SELECT id, '固定値', now() FROM select_table;
結果をみてみましょう・・・
SELECT * FROM insert_table;
insert_table
id | colomn2 | colomn3 |
---|---|---|
1 | 固定値 | 2017/4/6 |
2 | 固定値 | 2017/4/6 |
3 | 固定値 | 2017/4/6 |
今日は以上です。
どうでもいいけど・・・はてぶろってpostgresqlの記法ってないのかな・・
mysqlでコードハイライトしたけど、それっぽいのが見つからなかった・・・