Questo è qualcosa su cui vale la pena fare qualche ricerca, se hai intenzione di lavorare con i database in qualsiasi modo.
Tutti i DBMS con cui ho lavorato finora hanno un mezzo per esaminare i vincoli, le colonne e le informazioni sulla tabella. Quelli per MySQL che ti aiuteranno a fare quello che vuoi sono probabilmente in INFORMATION_SCHEMA:
TABLE_CONSTRAINTS Il riferimento MySQL per questo è qui .
SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;
COLONNE Il riferimento MySQL per questo è qui.
SELECT column_name FROM INFORMATION_SCHEMA.columns;
Dovresti essere in grado di fare qualcosa del genere per ottenere ciò che desideri:
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'
Dovrebbe essere essenzialmente ciò di cui hai bisogno. Visualizzazioni/tabelle come queste possono essere i tuoi migliori amici quando hai bisogno di ottenere informazioni sul tuo schema.
Spero che queste informazioni siano utili.