重要なポイント
説明
ルールは単純です。2つのテーブル構造が完全に一致させる/している場合のみ使用します。
本番データからテスト環境にデータを移したり、バックアップしてあるデータから復元したりする際に簡単なSQL文でデータ移行ができます。
構文
パターン1
<例題>
学生マスタ【基データ】(student_mst_base)から学生マスタ(stundent_mst)にすべてのレコードを移行してください。
insert into student_mst
select * from student_mst_base smb;
パターン2
<例題>
学生マスタ【基データ】(student_mst_base)から学生マスタ(stundent_mst)にすべてのレコードを移行してください。
insert into student_mst(
student_no
,student_kj
,student_kn
,student_cd
,gakka_no
,seibetu_ku
,age_nb
,test_su
,delete_ku
,insert_at
,update_at
)
select
smb.student_no
,smb.student_kj
,smb.student_kn
,smb.student_cd
,smb.gakka_no
,smb.seibetu_ku
,smb.age_nb
,smb.test_su
,smb.delete_ku
,smb.insert_at
,smb.update_at
from student_mst_base smb;
こんなテクニックも!
<例題>
学生マスタ【基データ】(student_mst_base)から学生マスタ(stundent_mst)にすべてのレコードを移行してください。
但し、下記カラムについては固定値を登録すること。
- 学科NO(gakka_no)は、〈5〉
- 削除区分(delete_ku)は、〈0〉
- 登録日時(insert_at)は、now()
- 更新日時(update_at)は、now()
insert into student_mst(
student_no
,student_kj
,student_kn
,student_cd
,gakka_no
,seibetu_ku
,age_nb
,test_su
,delete_ku
,insert_at
,update_at
)
select
smb.student_no
,smb.student_kj
,smb.student_kn
,smb.student_cd
,5
,smb.seibetu_ku
,smb.age_nb
,smb.test_su
,'0'
,now()
,now()
from student_mst_base smb;