###やりたいこと
テーブルの中の情報も含めて、同じテーブル(バックアップ用)を作成すること
###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でテーブルを複製しているので、カラム数は一致していますね。)
以上です!
最後まで読んでいただいた方、ありがとうございました。