Maison >base de données >tutoriel mysql >Comment puis-je interroger les relations de clés étrangères dans SQL ?

Comment puis-je interroger les relations de clés étrangères dans SQL ?

DDD
DDDoriginal
2025-01-16 22:25:41225parcourir

How Can I Query Foreign Key Relationships in SQL?

Récupération des informations de clé étrangère en SQL

Comprendre les dépendances des clés étrangères est crucial pour la gestion des schémas de bases de données. SQL fournit une méthode simple pour extraire ces informations à l'aide des information_schema tables de métadonnées de la base de données.

Pour lister toutes les clés étrangères associées à une table spécifique, utilisez cette requête :

<code class="language-sql">SELECT
    tc.table_schema,
    tc.constraint_name,
    tc.table_name,
    kcu.column_name,
    ccu.table_schema AS foreign_table_schema,
    ccu.table_name AS foreign_table_name,
    ccu.column_name AS foreign_column_name
FROM information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
    ON tc.constraint_name = kcu.constraint_name
    AND tc.table_schema = kcu.table_schema
JOIN information_schema.constraint_column_usage AS ccu
    ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
    AND tc.table_schema = 'myschema'
    AND tc.table_name = 'mytable';</code>

Remplacez 'myschema' et 'mytable' par les noms de schéma et de table souhaités, respectivement.

Pour trouver toutes les tables référençant une table donnée comme clé étrangère, ajustez simplement la clause WHERE :

<code class="language-sql">WHERE tc.constraint_type = 'FOREIGN KEY'
    AND ccu.table_schema = 'myschema'
    AND ccu.table_name = 'mytable';</code>

Cette requête révisée renverra toutes les tables qui utilisent mytable dans myschema comme clé étrangère.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn