先日、テーブルの刷新を行う際に、カラムが増えたテーブルにダンプデータをインポートしようとしたところ、カラム数が異なるからダメだよと怒られてしまいました。
ダンプデータを見るとINSERT文にカラム名の定義がありません。
普通にエクスポートしたらそうなりますよね(笑
ということで、今回は、そのようなケース対応方法を書いていきたいと思います。
と言っても、単純ですが、ダンプ出力時に「-c」オプションを追加してカラム名を含んだデータでエクスポートするだけです!!
※「-t」はCREATE文を出力しないオプションになりますので、データのみのエクスポートになります。
$ mysqldump -u user -p -t -c database_name > data.dump
これで以下のようカラム名が明示された INSERT 文でエクスポートされますので、あとは、該当の環境で出力したダンプをインポートします。
INSERT INSTO table_name(column1, column2, column3, column10) VALUES (value1, value2, value3, value10);
データをインポートしたい該当の環境で、出力したダンプファイルをインポートします。
$ mysql -u user -p database_name < data.dump
これで無事にインポートできました。
めでたし!めでたし!(^0^)/
コメント