【问题标题】:Mysql restore only dataMysql只恢复数据
【发布时间】:2016-01-16 03:21:01
【问题描述】:

下午好, 我有许多完全备份我的数据库(表结构、数据和过程)的旧备份文件(使用 mysqldump 创建)。 现在我必须将表中的 CHAR(5) 列更改为 VARCHAR(7),但我希望我的旧备份与新结构兼容。我可以只从这些旧备份中恢复数据吗? 对于未来,我已经将我的 php 脚本更改为仅使用 mysqldump 中的 --no-crete-info 选项备份数据。

非常感谢 卢卡

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    为什么不将 mysql 转储上传到 PhpMyAdmin,然后使用编辑结构选项卡将列从 CHAR(5) 更改为 VARCHAR(7)。如果您不太确定如何编辑文件转储,这似乎是您最简单的选择。

    【讨论】:

    • 我没有 PhpMyAdmin。我用脚本创建我的数据库。我已经修改了 .sql 脚本,但如果我恢复旧备份,实际表列 VARCHAR(7) 将被 CHAR(5) 覆盖
    【解决方案2】:

    处理这种数据定义更改的最佳方式是在原地进行。

    1. 在更改之前进行备份。
    2. 使您的应用程序脱机,因此没有人会尝试访问数据库。
    3. 发出命令ALTER TABLE mytable MODIFY mycolumn VARCHAR(5);

    然后你就可以开始运行了。您可以再次启动您的应用程序,并且可以进行另一次备份。最后你可能想要发出这个命令。

    UPDATE mytable SET mycolumn = TRIM(mycolumn) 
    

    处理旧列值中潜在的尾随空格。

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多