如何从列中获取列是否为表的主键?
问题描述:
我正在跟下面的查询我的数据的基础上下来列出的所有表的所有列在MySQL的如何从列中获取列是否为表的主键?
SELECT * FROM information_schema.columns
WHERE table_schema = DATABASE()
ORDER BY table_name, ordinal_position
我想获得的所有列是否是一个主键或不呢?主键列显示为y,非主键列在此查询中显示为n。我怎样才能实现这个查询?
答
您可以使用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
感谢。它有助于解决我的问题。 – chathwind