MySQL数据库的约束列表

如何从特定数据库获取所有约束的列表?

使用information_schema.table_constraints表获取每个表上定义的约束的名称:

 select * from information_schema.table_constraints where constraint_schema = 'YOUR_DB' 

使用information_schema.key_column_usage表获取这些约束中的每一个的字段:

 select * from information_schema.key_column_usage where constraint_schema = 'YOUR_DB' 

如果您正在讨论外键约束,请使用information_schema.referential_constraints

 select * from information_schema.referential_constraints where constraint_schema = 'YOUR_DB' 

很好的回答@Senseful。

我正在为那些只查找约束名称列表(而不是其他详细信息/列)的用户提供修改后的查询:

 SELECT DISTINCT(constraint_name) FROM information_schema.table_constraints WHERE constraint_schema = 'YOUR_DB' ORDER BY constraint_name ASC; 

SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME =“tabnam”;