【问题标题】:Checking data between tables to see if they are equal检查表之间的数据以查看它们是否相等
【发布时间】:2021-10-18 11:26:48
【问题描述】:

我正在尝试对 mysql 服务器的数据库表进行验证,查看它们是否已更改,检查与备份相比是否有更改,但目前我正在比较时间戳检查时间他们被改变了,有什么方法可以检查与备份的比较信息,例如,如果表 x 在与备份中的数据比较后发生了变化,我们看到表之间的数据不同。

【问题讨论】:

  • 不知道数据库的大小或涉及多少表,但一种可能的方法是将两个数据库(或任何特定表)的数据转储到单独的文件中,然后运行 ​​diff实用程序查看两个文件的差异。
  • 嘿,数据库有点大,涉及很多表,但是你推荐什么实用程序,因为我的目标是把它放在一个剧本中

标签: mysql sql mysql-workbench


【解决方案1】:

如果您想在同一个数据库中比较两个表 - 最准确(但也相当昂贵)的查询是:

SELECT
  *
FROM table_to_validate
MINUS
SELECT
  *
FROM table_to_compare_with;

查询将返回 table_to_validate 中与 table_to_compare_with 中不完全相同的所有行 - 如果表相同,则根本没有。

您还可以运行 MINUS 查询的反向查询,以查找存在于另一个表中但在此表中不存在的行。

【讨论】:

  • 感谢帮助,但在工作台中 MINUS 不起作用,我有两个不同的数据库,每个表都在不同的数据库中
猜你喜欢
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
相关资源
最近更新 更多