2010-03-18 13 views
7

Gibt es eine einfache Möglichkeit, eine Tabelle nach ihren Einschränkungen abzufragen (speziell für Fremdschlüssel) wie show create table, aber nur für die Constraints?Mysql show create constraint?

Dank,

pvgoddijn

Antwort

10

Um nur die Fremdschlüssel-Constraints Sie die constraint_type in information_schema.table_constraints überprüfen und die betroffenen Spalten in information_schema.key_column_usage über eine

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

danke das war genau das, was ich gesucht habe. – pvgoddijn

+0

+1 NICE QUERY. FTW ... – KeatsKelleher

-3
SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'; 

Die Fremdschlüssel-Constraints in der Kommentarspalte der Ausgabe aufgeführt sind.

+0

Diese Verbindung erhalten funktioniert nicht bei allen Tabellentypen. –

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