2016-05-19 66 views
-2

我需要一個腳本,幫我看看,有主鍵的表,不指定數據庫名稱或表名。需要幫助...動態查找表與主鍵

+0

也許有趣? [瞭解MySQL信息模式數據庫](http://www.databasejournal.com/features/mysql/understanding-the-mysql-information-schema-database.html)。另外:[第22章INFORMATION_SCHEMA表](http://dev.mysql.com/doc/refman/5.7/en/information-schema.html),imo,你只需編寫SQL查詢來找出你想要的。 –

回答

0
select 
    t.table_schema,t.table_name 
from 
    information_schema.tables t 
    inner join information_schema .columns c 
     on t.table_schema=c.table_schema and t.table_name=c.table_name 
group by 
    t.table_schema,t.table_name 
having 
    sum(if(column_key in ('PRI','UNI'), 1,0)) =1; 

This works。

0

對於MySQL,總有一個命名爲「主」爲每一個主鍵約束。所以找到它們非常簡單:

SELECT TABLE_SCHEMA, TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
WHERE CONSTRAINT_NAME = 'PRIMARY';