English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL テーブルのコピー

このチュートリアルでは、既存のテーブルの複本を作成する方法を学びます。

テーブルのクローンまたはコピー

ある場合、元のテーブルに影響を与えずにテストや特定の操作を実行するために、既存のテーブルの正確な複本またはクローンを作成したい場合があります。

次のセクションでは、この操作を実行するためのいくつかの簡単なステップを説明します。

ステップ1:空のテーブルを作成する

まず以下の文を使用して元のテーブルの定義に基づいて空のテーブルを作成します。これには元のテーブルで定義された列属性とインデックスも含まれます:

CREATE TABLE new_table LIKE original_table;

ステップ2:データをテーブルに挿入する

現在、以下の文を使用して空のテーブルに元のテーブルのデータを埋め込みます:

INSERT INTO new_table SELECT * FROM original_table;

MySQLコマンドラインツールを使用してテーブルをクローンする方法を説明します。

私たちを考えてみましょうemployeesのデータベースに以下のレコードを含むテーブルがあります:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

以下のSQL文を実行します。それは既存のemployeesデータベーステーブルの定義を作成して空のテーブルをemployees_clone

 employees_clone  employees;

現在、別のSQL文を実行します。それはemployeeテーブルからすべてのレコードをemployees_cloneテーブルに挿入します。この文を実行した後、employee_cloneテーブルが得られます。このテーブルはemployeeテーブルの正確な複本または複本です。

 employees_clone  *  employees;

簡単なクローン

ただし、列属性やインデックスを考慮せずに別のテーブルからテーブルを作成したい場合は、簡単な一行の文を使用できます:

CREATE TABLE new_table SELECT * FROM original_table;

以下のコマンドが作成しますemployeesテーブルの単純なコピー。

 employees_dummy  *  employees;

ヒント:使用CREATE TABLE ... SELECT文法で、構造とデータを含む単純なテーブルのコピーを作成できます。