MySQL: Comment déterminer les relations de clé étrangère par programme?
Similaire à cette question mais pour MySQL....
Comment puis-je déterminer par programmation de clé étrangère références dans MySQL (en supposant que MyISAM)? Je peux presque les obtenir avec:
SHOW TABLE STATUS WHERE Name = 'MyTableName';
...mais hélas, la colonne commentaire qui semble contenir une partie de cette info soit tronquée donc je ne peux pas compter sur elle. Il doit y avoir un autre moyen...
Je serais heureux avec un C appel d'API, une instruction SQL, rien-j'ai juste besoin de quelque chose qui travaille constamment.
Note: j'ai également considéré comme l'analyse des résultats d'un "SHOW CREATE TABLE MyTableName" déclaration, mais je suis vraiment en espérant que il y a quelque chose de plus simple.
source d'informationauteur Drew Hall
Vous devez vous connecter pour publier un commentaire.
Il y a deux tables, vous pouvez requête pour obtenir cette information:
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
etINFORMATION_SCHEMA.KEY_COLUMN_USAGE
.Voici une requête à partir d'observations sur la dernière page liée ci-dessus, qui montre comment obtenir l'information que vous cherchez.
Utiliser votre nom de schéma au lieu de "
test
" ci-dessus.Ici, vous avez un peu d'amélioration au cours de la @bill solution:
Dans ce cas, j'ai été le filtrage par les relations avec les "your_table_name" champs et de voir à partir de la base de données de la relation.
Essayer
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS