Jest to coś, nad czym warto poszukać, jeśli zamierzasz pracować z bazami danych o dowolnej długości.
Wszystkie DBMS, z którymi do tej pory pracowałem, mają możliwość przeglądania ograniczeń, kolumn i informacji w tabeli. Te dla MySQL, które pomogą Ci robić to, co chcesz, prawdopodobnie znajdują się w INFORMATION_SCHEMA:
TABLE_CONSTRAINTS Dokumentacja MySQL na ten temat znajduje się tutaj .
SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;
KOLUMNY Dokumentacja MySQL do tego znajduje się tutaj.
SELECT column_name FROM INFORMATION_SCHEMA.columns;
Powinieneś być w stanie zrobić coś takiego, aby uzyskać to, czego chcesz:
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'
Powinno być zasadniczo tym, czego potrzebujesz. Takie widoki/tabele mogą być Twoim najlepszym przyjacielem, gdy potrzebujesz uzyskać informacje o swoim schemacie.
Mam nadzieję, że te informacje pomogą.