2013-03-01 94 views
3

我需要做的是一次檢索我數據庫中所有表的最大主鍵?也就是說,我的結果會是怎樣,如果我執行以下2查詢:一次檢索數據庫中所有表的MAX主鍵值

SHOW TABLES FROM DATABASE_NAME 

SELECT MAX(PRIMARY_KEY) AS maxId FROM TABLE 

也就是說

(first column = TableName , second column = MAX(PK) Of that table) 

對不起,如果我做錯了什麼。我只是不想寫80個查詢,因爲我的數據庫有80個表。

+3

這聽起來像是固定的經典案例。你真的想要完成什麼? – Perception 2013-03-01 13:57:26

+0

@Perception我正在從Windows遷移到Linux,所以我需要這個。 – 2013-03-01 14:00:14

+0

從一個操作系統移動到另一個操作系統究竟與主鍵完全相關?你可能在這裏重新發明了輪子,你能否給我們更多的細節,因爲如果它看起來是這樣 - 還有其他方法。 – 2013-03-01 14:02:08

回答

6

如果(且僅當)你的主鍵是AUTO INCREMENT變量,你可以這樣做:

SELECT TABLE_NAME, AUTO_INCREMENT 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'mydb' 
+0

可以說我的數據庫名稱是「謝謝」比未知列'謝謝'in'子句' – 2013-03-01 14:08:41

+0

@FawadGhafoor你必須把表名引號 - 這是一個字符串。 – Alnitak 2013-03-01 14:11:43

+1

@FawadGhafoor對不起,我混淆了「表名」/「數據庫名稱」 - 最後一個參數是_database name_,查詢將爲每個_table_返回一行。 – Alnitak 2013-03-01 14:20:49

相關問題