我想在数据库中查找缺失的表。
我有两个数据库:
- 数据库_1(包含120个表)
- database_1_backup(它包含121 个表)
到目前为止我做了什么:
我使用以下 sql 查询找到了两个数据库中的表列表:
show tables;
使用表格列表,我制作了两个文本文件,然后比较了两个文本文件。这就是我找到丢失的表的方式(这是一项耗时的任务,所以)。
是否有任何查询可用于通过比较两个表来查找丢失的表 数据库?
最佳答案
您可以使用聚合来查找任一数据库中丢失的表:
SELECT TABLE_NAME,
(CASE WHEN SUM(TABLE_SCHEMA = 'dbname1') = 0
THEN 'Missing in dbname1'
ELSE 'Missing in dbname2'
END) as which
FROM information_schema.TABLES
WHERE TABLE_SCHEMA IN ('dbname1', 'dbname2')
GROUP BY TABLE_NAME
HAVING COUNT(*) = 1
ORDER BY TABLE_NAME;
关于mysql - 通过比较两个不同的数据库来查找丢失的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306475/