C'est quelque chose qui vaut la peine de faire des recherches, si vous allez travailler avec des bases de données de n'importe quelle longueur.
Tous les SGBD avec lesquels j'ai travaillé jusqu'à présent ont un moyen de regarder les contraintes, les colonnes et les informations de table. Ceux pour MySQL qui vous aideront à faire ce que vous voulez sont probablement dans le INFORMATION_SCHEMA :
TABLE_CONSTRAINTS La référence MySQL pour cela est ici .
SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;
COLONNES La référence MySQL pour cela est ici.
SELECT column_name FROM INFORMATION_SCHEMA.columns;
Vous devriez pouvoir faire quelque chose comme ça pour obtenir ce que vous voulez :
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'
Le devrait être essentiellement ce dont vous avez besoin. Des vues/tables comme celles-ci peuvent être votre meilleur ami lorsque vous avez besoin d'obtenir des informations sur votre schéma.
J'espère que ces informations vous seront utiles.