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