Help us understand the problem. What is going on with this article?

列が増える可能性のあるテーブルのmysqldump

More than 5 years have passed since last update.

列が追加されないテーブルのバックアップ

MySQLの特定テーブルのバックアップには次のmysqldumpがよく利用されるだろう。

shell
mysqldump -h host  -u user -ppass database table --no-create-info --single-transaction 

実行した結果は次のとおりである。

dumped.sql
LOCK TABLES `table` WRITE;
/*!40000 ALTER TABLE `table` DISABLE KEYS */;
INSERT INTO `table` values (`val1`, `val2`, ...

テーブルに列が追加されないことを前提しているのであれば良いが、列が増える可能性があるならばリストアに手間取ることになるだろう。

列が追加される可能性のあるテーブルのバックアップ

列が増えてもリストア簡単にリストアできるバックアップを取得するために、--complete-insertオプションを付与して実行する。--complete-insertオプションにて列名をダンプに含めることができる。

shell
mysqldump -h host  -u user -ppass database table --no-create-info --single-transaction --complete-insert
dumped.sql
LOCK TABLES `table` WRITE;
/*!40000 ALTER TABLE `table` DISABLE KEYS */;
INSERT INTO `table` (`col1`, `col2`, ...) values (`val1`, `val2`, ...

参考

http://stackoverflow.com/questions/5467517/mysqldump-create-column-names-for-inserts-when-backing-up

soultoru
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away