我想在数据库中找到丢失的表。
我有两个数据库:
到目前为止我所做的:
我使用以下 sql 查询找到了两个数据库中的表列表:
show tables;
Run Code Online (Sandbox Code Playgroud)
使用表格列表,我制作了两个文本文件,然后比较了两个文本文件。这就是我找到丢失表的方法(这是一项耗时的任务,所以)。
是否有任何查询可通过比较两个数据库来查找丢失的表?
您可以使用聚合来查找任一数据库中缺少的表:
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;
Run Code Online (Sandbox Code Playgroud)