2015-11-05 29 views
2

我正在跟下面的查詢我的數據的基礎上下來列出的所有表的所有列在MySQL的如何從列中獲取列是否爲表的主鍵?

SELECT * FROM information_schema.columns 
WHERE table_schema = DATABASE() 
ORDER BY table_name, ordinal_position 

我想獲得的所有列是否是一個主鍵或不呢?主鍵列顯示爲y,非主鍵列在此查詢中顯示爲n。我怎樣才能實現這個查詢?

回答

2

您可以使用COLUMN_KEY柱和CASE WHEN

SELECT column_name, CASE WHEN COLUMN_KEY = 'PRI' THEN 'y' ELSE 'n' END AS result 
FROM information_schema.columns 
WHERE table_schema = DATABASE() 
    AND `table_name` = 'tab'  -- table name 
ORDER BY `table_name`, ordinal_position 

SqlFiddleDemo

+1

感謝。它有助於解決我的問題。 – chathwind

相關問題