とあるテーブルのデータを利用しつつ他のテーブルにINSERTする

ボールを抱えた状態にしたくなくて、早く帰りたい欲求と空腹と戦いながら解決した問題の備忘録。

 

とあるテーブルのデータを利用しつつ他のテーブルにINSERTしなければならなくなった。さて、どうしたものか。

「insert 全件 sql」でググったところ、下記のTipsがヒット。

www.projectgroup.info

うーん、でもこのテーブルAとテーブルBの列、全部利用するわけじゃないし、一部固定値なんだけど、どうすれば…とここから苦悩。

 

insert into 中学生データ (氏名, 生年月日, 入学予定日, 卒業予定日, 転校フラグ)

values (氏名, 生年月日, '20170401', '20190331', '0')

select 氏名, 生年月日

from 小学生データ

where 入学予定日 = '20120401'

and 卒業予定日 = '20170331'

and 転校フラグ = '0';

 

とかで実行してもうまくいかないし…。うーん…。

その後、select って固定値でもOKだしこうすればいけるんじゃね?と思い至る。

 

insert into 中学生データ (氏名, 生年月日, 入学予定日, 卒業予定日, 転校フラグ)

select 氏名, 生年月日, '20170401', '20190331', '0'

from 小学生データ

where 入学予定日 = '20120401'

and 卒業予定日 = '20170331'

and 転校フラグ = '0';

 

お、想定通りにINSERTできたぞ。

ということで無事ボールを投げ返し、退社しました。めでたしめでたし。