2010-05-16 167 views
2

我有2個相同的數據庫。 abc15和abc18。但其中一個數據庫有一個額外的表,我需要找到它。我認爲下面的查詢應該返回它,但是它沒有顯示我期望的記錄。比較2數據庫

select * from information_schema.tables as a 
    left join information_schema.tables as b 
     on a.TABLE_SCHEMA=b.TABLE_SCHEMA AND a.TABLE_NAME=b.TABLE_NAME 
    where a.TABLE_SCHEMA = 'abc15' AND b.TABLE_SCHEMA='abc18' and 
     b.TABLE_NAME IS NULL 
+1

您的查詢,只是要檢查一個方向,會發生什麼當新的「表」是在「B」數據庫?切換到外部聯接。 – Zachary 2010-05-16 05:16:47

回答

1
$ mysqldumpslow --database abc15 >/tmp/a 
$ mysqldumpslow --database abc18 >/tmp/b 
$ diff /tmp/a /tmp/b 
3

如果數據庫b有額外的表?嘗試使用全外連接和一個額外的約束末(OR a.TABLE_NAME IS NULL)