Mysqldump:备份时为插入创建列名

Qui*_*Par 63 mysql mysqldump database-schema

如何指示mysqldump使用insert语句中的列名进行备份?
在我的情况下,我没有正常的备份与插入sql的结果

LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` 
INSERT INTO `users` VALUES (1
Run Code Online (Sandbox Code Playgroud)

结构体.

现在我继续从用户的架构中删除了一列.在此之后,当我运行备份sql时,我得到列号不匹配错误.

要解决此问题,我如何指示mysqldump也写入列名?我现在就是这样做的

mysqldump --host=${dbserver} --user=${dbusername} --password=${dbpassword} \
          --no-create-db --no-create-info --extended-insert --single-transaction \
          --compress tablename  
Run Code Online (Sandbox Code Playgroud)

在更广泛的层面上,管理这些架构更改的最佳做法是什么?

Che*_*ian 154

使用--complete-insert在mysqldump命令PARAMS

  • 有没有理由说明为什么这不应该是mysqldump的默认行为? (7认同)
  • @paradiso还注意到mysqldump默认是转储结构和数据,从而使列名信息无用.将值加载到表中,其结构可能与您从中提取数据的结构可能不同时,指定列名称非常有用. (7认同)
  • @paradiso我认为这是因为`mysqldump`被大量用于备份,并且它们尽可能小,这是一件好事. (6认同)