代码之家  ›  专栏  ›  技术社区  ›  brumScouse

SQL Diff工具在两个不同的db服务器上显示两个相同存储过程的差异的原因是什么

  •  4
  • brumScouse  · 技术社区  · 15 年前

    通过使用许多不同的SQL“diff/comparison”工具,我得到了存储过程和表的差异报告,这些存储过程和表在两个不同的数据库服务器上的数据库之间是相同的(除了某些关键字的情况外,其他都是相同的——请记住(期望情况是相同的)。

    “client”数据库管理工具和我所使用的比较工具都被配置为尝试将关键字大写,而不是将关键字大写,以便提供一致性。

    我还运行了相同的脚本来在两个数据库服务器上创建存储过程。托管比较中涉及的数据库的mySQL数据库服务器都是相同的版本;版本5.1

    我需要关注哪些MySQL服务器配置设置,这样我就可以运行比较,而不会看到它们实际上不存在的差异。

    这里的目的是我得到一个关于差异的准确报告,然后可以自信地生成数据库脚本,包括/排除提升期间的更改,类似于使用SQL diff工具所期望的那样!!

    谢谢,

    2 回复  |  直到 15 年前
        1
  •  1
  •   Riedsio    15 年前

    根据我的经验,当两个模式被声明为不同时,尽管我希望它们是准确的,是由于

    • MySQL版本略有不同,所以表定义中有空格和大写( CREATE TABLE 是不同的
    • 不同服务器上的不同默认字符集(在服务器、数据库或表级别)
    • 表上索引的不同顺序(由于我在其中一个服务器上删除并重新添加索引)

    ++

    • 这个 AUTO_INCREMENT 价值 创建表
        2
  •  0
  •   DGH    15 年前

    如果两台服务器不是同一个操作系统,则换行符可能有差异

    http://en.wikipedia.org/wiki/Newline