LoginSignup
6
2

More than 3 years have passed since last update.

やりたいこと

テーブルの中の情報も含めて、同じテーブル(バックアップ用)を作成すること

SQL

既存のテーブル→「info」
新規のテーブル→「info_bk」

/*1.テーブル定義を複製する*/
CREATE TABLE info_bk LIKE info;

/*2.複製したテーブル定義を確認する*/
show full columns from info_bk;

/*3.既存テーブルのデータを新規テーブルに挿入する*/
INSERT INTO info_bk SELECT * FROM info;

/*4.新規テーブルの中身を確認する*/
select * from info_bk;

解説

1.テーブル定義を複製する CREATE TABLE info_bk LIKE info;
[infoテーブル]をもとに、新しく[info_bk]という箱が作成されます。

中身のデータは入っていませんが、インデックスやプライマリーキーなどもコピーして作成されます。

以下のSQLを使うと、データの移行も含めて、新しいテーブルができますが、インデックスやプライマリーキー、デフォルト値は再設定が必要になります。

CREATE TABLE info_bk SELECT * FROM info;

3.既存テーブルのデータを新規テーブルに挿入する INSERT INTO info_bk SELECT * FROM info;
[info]テーブルのデータを、[info_bk]テーブルの中に追加できます。

VALUESをselectの前に書きたくなってしまいますが、このinsert文については、VALUESは必要ありません。
info_bkとinfoのカラムの数が一致する必要があります。(1でテーブルを複製しているので、カラム数は一致していますね。)

以上です!

最後まで読んでいただいた方、ありがとうございました。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2