MySQL でテーブルをコピーする
このチュートリアルは、MySQL でテーブルのコピーを作成するためのさまざまな方法を探求することを目的としています。
ソーステーブルはコピーされるテーブルとも呼ばれ、クローンテーブルと呼ばれる宛先テーブルは、MySQL サーバー内の同じデータベースまたは個別のデータベースからのものにすることができます。
MySQL でテーブルをコピーするために、次の方法を検討します。
CREATE TABLE ... AS SELECT
ステートメントを使用してテーブルを複製します。WHERE
句を使用して、部分的なデータでテーブルをクローンします。
始める前に、操作するダミーデータセットを作成します。ここでは、テーブル student_details
とその中のいくつかの行を作成します。
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
上記のクエリは、学生の名前と名前を含む行とともにテーブルを作成します。データのエントリを表示するには、次のコードを使用します。
SELECT * FROM student_details;
前述のコードは次の結果をもたらします。
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
次に、students_data_backup
という名前で上記のテーブルのコピーを作成しましょう。
CREATE TABLE ... AS SELECT
ステートメントを使用してテーブルを複製する
テーブルコピーを作成するための最も基本的な方法の 1つは、CREATE TABLE ... AS SELECT
ステートメントを使用することです。この操作は、次のコードで実行できます。
-- Basic copy table creation
create table students_data_backup as select * from student_details;
前述のコードは、ソーステーブルとして機能する student_details
テーブルから students_data_backup
という名前のコピーテーブルを作成します。この新しいテーブル students_data_backup
は、次のクエリで視覚化できます。
select * from students_data_backup;
前述のコードを出力すると、次のような一時テーブルが作成されます。
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
WHERE
句を使用した部分データを含むテーブルのクローン化
場合によっては、特定の特定の部分のみを複製する必要があります。WHERE
句と CREATE TABLE ... AS SELECT
ステートメントを使用して、この操作を実行できます。
student_details
テーブルのクローンを部分的に作成してみましょう。最初の 5つの stu_id
のみのデータを使用してテーブルのクローンを作成することを選択します。
この操作は、次のコードで実行できます。
-- Cloning the student_details table with where clause
create table students_data_backup as select * from student_details WHERE stu_id <= 5;
指定されたコードサンプルは、次の出力を生成します。
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
ご覧のとおり、student_details
テーブルのコピーが作成されていますが、最初の 5つの stu_id
のみが含まれています。
この手法を使用すると、要件に応じて特定のテーブルから部分的なデータのクローンを作成できます。上記の 2つの方法を使用すると、ソーステーブルのコピーを簡単に作成できます。