2010-03-18 22 views
7

Bir tabloyu kısıtlamaları için sorgulamanın kolay bir yolu var mı (yabancı anahtarlar özel olarak) show create table gibi, ancak yalnızca kısıtlamalar için mi?Mysql gösterisi kısıtlama yaratıyor mu?

sayesinde yabancı anahtar kısıtlamaları çıkış Yorum sütununda listelenen

cevap

10

Bir

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

teşekkürler, tam olarak aradığım şey buydu. – pvgoddijn

+0

+1 GÜZEL QUERY. FTW ... – KeatsKelleher

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

pvgoddijn.

+0

Bu katılmak yoluyla information_schema.key_column_usage etkilenen sütunlar information_schema.table_constraints içinde constraint_type kontrol edip alabilirsiniz sadece yabancı anahtar kısıtlamaları göstermek için tüm tablo tiplerinde çalışmaz. –

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