4

最近、運用データベースのスキーマを改善し、列名やインデックスなどを変更しました。また、ストレージ エンジンを InnoDB に変更して、トランザクションと外部キーを利用できるようにしました。

古いスキーマから新しいスキーマにデータをインポートする最良の方法は何ですか? 列名が変更されていることに注意してください (主キーを含む)。

4

1 に答える 1

1
  1. 列名を変更したかのように、ファイルを作成してインポートすることができます。

    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';
    

    参照:

  2. それ以外の場合は、可能であれば、列の数が同じである限り、次のように処理します。

    新しいテーブルに挿入select*from old-table;

    列の数が同じでない場合:

    新しいテーブルに挿入し、古いテーブルからcol1、col2、...を選択します。

于 2010-03-05T16:05:18.783 に答える