2012年12月4日火曜日

Mysqlでテーブルのコピー

test1テーブルの属性(AUTO_INCREMENTやインデックスなど)をtest2にコピー
CREATE TABLE test2 LIKE test1;


test1テーブルのデータをtest2にコピー

INSERT INTO test2 SELECT * FROM test1;

 
-------------------------------


カラム名の違うテーブルにデータをコピーする

コピーしようと思ったらカラム名が微妙に違う!なんていうのも無くはない。

その時はちょっとめんどくさいけどカラム名を指定してあげることでコピーできる。

INSERT INTO new_table (id, name, division) SELECT serial, name, section FROM original_table

ということは、コピー元にはないカラムも値を指定してあげれば、いける。

INSERT INTO new_table (id, name, division, sex) SELECT serial, name, section, 'male' FROM original_table