重要なポイント

テーブル構造が完全に一致したときの便利技!

説明

ルールは単純です。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;