Това е нещо, върху което си струва да се направи проучване, ако ще работите с бази данни в каквато и да е дължина.
Всички СУБД, с които съм работил досега, имат средства за разглеждане на ограниченията, колоните и информацията за таблицата. Тези за MySQL, които ще ви помогнат да правите това, което искате, вероятно са в INFORMATION_SCHEMA:
TABLE_CONSTRAINTS Справочникът за MySQL за това е тук .
SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;
КОЛОНИ Препратката към MySQL за това е тук.
SELECT column_name FROM INFORMATION_SCHEMA.columns;
Трябва да можете да направите нещо подобно, за да получите това, което искате:
SELECT INFORMATION_SCHEMA.key_column_usage.column_name
FROM INFORMATION_SCHEMA.key_column_usage
JOIN INFORMATION_SCHEMA.table_constraints
ON INFORMATION_SCHEMA.key_column_usage.column_name = INFORMATION_SCHEMA.table_constraints.column_name
WHERE INFORMATION_SCHEMA.table_constraints.constraint_type <> 'PRIMARY KEY'
По същество трябва да е това, от което се нуждаете. Изгледи/таблици като тези могат да бъдат най-добрият ви приятел, когато трябва да получите информация за вашата схема.
Надявам се, че тази информация е полезна.