【问题标题】:Mysql Compare Two Database Tables and FieldsMysql比较两个数据库表和字段
【发布时间】:2016-04-14 05:34:27
【问题描述】:
  • 我必须比较两个数据库表和字段(不是它们的 DATA)。
  • 说 Live DB 和 Development DB。在实时数据库中有 200 个表和 在开发数据库中有 218 个表,其中包含一些新的列字段 也添加到旧表中。
  • 在最后阶段,我必须通过添加新的来更新 Live DB 从开发数据库中获取的列和表。
  • 我不应该丢失旧数据库中的数据。
  • 我尝试了很多方法来做到这一点,但对我来说需要很长时间 完成。我使用的工具之一是 mysql workbench。

是否有任何查询可以使用信息架构执行此操作?

为了让事情变得更容易,我从开发服务器导入了开发数据库并以不同的名称上传到实时数据库中。现在两个数据库都在同一台服务器上,但名称不同。例如。站点数据库,站点开发数据库

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    每当您使用最终将上线的更改更新开发数据库时,您应该编写一个.sql 脚本,该脚本将在实时数据库上重复更改。

    否则这个操作非常棘手..您可能必须自己手动找出添加的列,或者您可以使用每个INFORMATION_SCHEMA.COLUMNS来比较旧表。

    对于新表SHOW CREATE **table_name**真的很有用。

    【讨论】:

    • 我正在尝试使用 PHP 编码来做到这一点。
    • @Raaga,除非你正在构建一些疯狂的数据库版本控制系统,否则这将是一次性的。我最终可能会混合使用 SQL sn-ps、手动调查以及在极端情况下可能使用 PHP 来获取构建脚本所需的信息。但是,随着您的进行,构建更改脚本要容易得多。
    【解决方案2】:

    您可能需要一个 MySQL 比较工具。我工作的公司 Redgate 提供MySQL Compare(用于数据库模式)和MySQL Data Compare(用于数据)。

    这些工具可免费用于非商业用途。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多