>> MySQL入門トップに戻る

MySQL テーブル設定&データを引き継いで新テーブル作成

MySQLでテーブル設定&データを引きついて新テーブルを作成する方法について説明します。

同じようなテーブルを作りたいと思ったとき、また同じコードを書くのは面倒です。
そこで既存テーブルの設定を引き継いで新テーブルを作成する方法があります。
create table test like sample
作成するテーブル名の後ろに「like 基となるテーブル名」を書きます。
これで、testテーブルはsampleテーブルの設定を引き継いでテーブルが作成されます。
ここで言う設定はインデックス、UNIQUE制約、AUTO_INCREMENTなどの設定全てです。
私の環境では、AUTO_INCREMENTは1に初期化されており、外部キーの設定は引き継がれませんでした。

これでテーブルの設定を引き継いでテーブルを作成することができました。
ですがまだ基のテーブルのデータ(レコード)自体は引き継いでいません。
テーブルのデータ(レコード)を引き継ぐには以下のようなコマンドを発行します。
insert into test select * from sample
これで先ほど作成したtestテーブルにsampleテーブルのデータを全て挿入することができます。
また、
create table test select * from sample;
という書き方もあり、この場合はデータ(レコード)やカラム名、型を引き継いでテーブルは作成されますが、
テーブルの設定は引き継がれません。
単純に同じカラム、型、データだけ引き継ぎたい場合はこちらの書き方を使います。
>> 【MySQL レコード追加、更新、削除(insert,update,delete)】に進む
>> MySQL入門トップに戻る