Mysql显示创建约束?

问题描述:

有没有一种简单的方法来查询表的约束(foreignkeys specificaly) 像show create table一样,但仅限于约束?Mysql显示创建约束?

感谢,

pvgoddijn

,只显示外键约束,你可以通过加入

SELECT b.table_name, b.column_name, b.constraint_name, 
     b.referenced_table_name, b.referenced_column_name 
FROM information_schema.table_constraints a 
JOIN information_schema.key_column_usage b 
ON a.table_schema = b.table_schema AND a.constraint_name = b.constraint_name 
WHERE a.table_schema=database() AND a.constraint_type='FOREIGN KEY' 
ORDER BY b.table_name, b.constraint_name; 
+0

感谢这正是我一直在寻找的。 – pvgoddijn 2010-03-18 16:23:08

+0

+1 NICE QUERY。 FTW ... – KeatsKelleher 2012-05-09 19:09:59

SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'; 

外键约束在输出的注释列中列出。

+0

此检查information_schema.table_constraints的constraint_type并得到受影响的列information_schema.key_column_usage不适用于所有表类型。 – 2011-09-15 18:31:18

MySQL 5.1 Manual

SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'; 

select * from 
information_schema.KEY_COLUMN_USAGE 
where table_schema = <db_name> 
and table_name = <table_name>;