>> MySQL入門トップに戻る
MySQLでテーブル設定&データを引きついて新テーブルを作成する方法について説明します。
同じようなテーブルを作りたいと思ったとき、また同じコードを書くのは面倒です。
そこで既存テーブルの設定を引き継いで新テーブルを作成する方法があります。
これで、testテーブルはsampleテーブルの設定を引き継いでテーブルが作成されます。
ここで言う設定はインデックス、UNIQUE制約、AUTO_INCREMENTなどの設定全てです。
私の環境では、AUTO_INCREMENTは1に初期化されており、外部キーの設定は引き継がれませんでした。
これでテーブルの設定を引き継いでテーブルを作成することができました。
ですがまだ基のテーブルのデータ(レコード)自体は引き継いでいません。
テーブルのデータ(レコード)を引き継ぐには以下のようなコマンドを発行します。
また、
テーブルの設定は引き継がれません。
単純に同じカラム、型、データだけ引き継ぎたい場合はこちらの書き方を使います。
>> 【MySQL レコード追加、更新、削除(insert,update,delete)】に進む
>> 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入門トップに戻る