別のテーブルと同じ定義のテーブルを作成

広告

作成済みのテーブルと同じテーブル定義を持つ新しいテーブルを作成する方法を確認します。書式は次の通りです。

CREATE TABLE new_tbl LIKE orig_tbl;

前のページで確認した方法では元のテーブルに格納されていたデータも新しいテーブルに追加されましたが、今回の構文はテーブル定義のみを複製します。また今回の構文ではインデックスに関する情報も含めて複製されます。

では実際に試してみます。元になるテーブルは以下のようなものを用意しました。

mysql> create table sourcetable(
    -> id int not null primary key, cate int, name varchar(10));

p16-1

元のテーブルにはデータを追加しておきます。

p16-2

作成したテーブル名と同じ構造のテーブルを作成するのに必要なCREATE TABLE文を表示してみます。

p16-3

ではこのテーブルと同じテーブル定義のテーブルを作成します。次のように入力して下さい。

mysql> create table newtable like sourcetable;

p16-4

新しいテーブルが作成されました。では作成したテーブル名と同じ構造のテーブルを作成するのに必要なCREATE TABLE文を表示してみます。

p16-5

プライマリーキーの設定などインデックスに関するものも含めて元のテーブル定義と同じテーブルが作成されました。なお、格納されていたデータは新しいテーブルには追加されません。

p16-6

( Written by Tatsuo Ikura )