最近、運用データベースのスキーマを改善し、列名やインデックスなどを変更しました。また、ストレージ エンジンを InnoDB に変更して、トランザクションと外部キーを利用できるようにしました。
古いスキーマから新しいスキーマにデータをインポートする最良の方法は何ですか? 列名が変更されていることに注意してください (主キーを含む)。
列名を変更したかのように、ファイルを作成してインポートすることができます。
SELECT * FROM old-table INTO OUTFILE '/path/to/filename.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
次に、データのロードを実行できます。
LOAD DATA INFILE '/path/to/filename.txt' INTO TABLE new-table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
参照:
それ以外の場合は、可能であれば、列の数が同じである限り、次のように処理します。
新しいテーブルに挿入select*from old-table;
列の数が同じでない場合:
新しいテーブルに挿入し、古いテーブルからcol1、col2、...を選択します。