Recherche de références de clés étrangères et de valeurs renseignées
Dans un schéma de base de données, il est courant d'avoir des tables qui référencent d'autres tables via des clés étrangères. Pour identifier les tables avec des clés étrangères référençant une table et une colonne spécifiques, ainsi que les tables dans lesquelles ces clés étrangères contiennent des données, la requête suivante peut être utilisée :
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id';
Cette requête récupère les informations de la table KEY_COLUMN_USAGE dans le base de données information_schema, qui contient des métadonnées sur les relations de clés étrangères. En filtrant les résultats sur REFERENCED_TABLE_NAME (X) et REFERENCED_COLUMN_NAME (X_id) spécifiés, la requête répertorie toutes les tables dont les clés étrangères pointent vers la colonne X_id de la table X.
De plus, pour garantir que seules les tables avec des clés étrangères renseignées les clés sont incluses, la requête peut être étendue pour inclure une vérification des valeurs non nulles dans la clé étrangère column :
SELECT t.TABLE_NAME, kcu.* FROM information_schema.KEY_COLUMN_USAGE kcu JOIN information_schema.TABLES t ON t.TABLE_SCHEMA = kcu.TABLE_SCHEMA AND t.TABLE_NAME = kcu.TABLE_NAME WHERE kcu.REFERENCED_TABLE_NAME = 'X' AND kcu.REFERENCED_COLUMN_NAME = 'X_id' ORDER BY t.TABLE_NAME;
Cette requête mise à jour récupère le nom de la table ainsi que les métadonnées de la clé étrangère, garantissant que seules les tables avec des clés étrangères renseignées sont incluses dans les résultats. En triant les résultats par nom de table, la sortie fournit une vue claire des tables qui ont des références de clé étrangère à la table et à la colonne spécifiées, et lesquelles de ces tables contiennent des données dans le champ de 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!