MySQL,テーブルのカラム構造とカラム属性のみをコピーする

スポンサーリンク

鍛錬 947

MySQL,テーブルのカラム構造とカラム属性のみをコピーする

CREATE TABLE に LIKE を付加して使用すると、「テーブルのカラム構造とカラム属性」のみをコピーして新しくテーブルを作成することができます。
 
使用方法は、以下に示す通りです。

CREATE TABLE 作成するテーブル名 LIKE コピー元のテーブル名;

カラムに設定されている、主キー(primary key) や AUTO_INCREMENT 等のカラム属性もコピーされます。

データはコピーされません。

スポンサーリンク

実行結果

今回は、テーブル fruits のカラム構造とカラム属性のみを、新規で作成するテーブル new_table にコピーします。

コピー元のテーブル「fruits」

id
(primary key)
(AUTO_INCREMENT)
name price
1 apple 250
2 orange 300
3 grape 500

 
以下は、実際にコピーしています。

コピーの前後で、次の項目を確認しています。

  • SELECT を使用して、データがコピーされていないことを確認しています。
  • DESC を使用して、カラム構造とカラム属性がコピーされていることを確認しています。
mysql> 
mysql> select * from fruits;
+----+--------+-------+
| id | name   | price |
+----+--------+-------+
|  1 | apple  |   250 |
|  2 | orange |   300 |
|  3 | grape  |   500 |
+----+--------+-------+
3 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> desc fruits;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(256) | YES  |     | NULL    |                |
| price | int(11)      | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> create table new_table like fruits;
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> 
mysql> select * from new_table;
Empty set (0.00 sec)

mysql> 
mysql> 
mysql> desc new_table;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(256) | YES  |     | NULL    |                |
| price | int(11)      | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

 
上記に示した通り、データがコピーされずに、カラム構造とカラム属性のみをコピーすることができました。

タイトルとURLをコピーしました