Posted at

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

More than 3 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