J'ai une table dont la clé primaire est référencée dans plusieurs autres tables comme clé étrangère. Par exemple:
CREATE TABLE `X` (
`X_id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`X_id`)
)
CREATE TABLE `Y` (
`Y_id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`X_id` int DEFAULT NULL,
PRIMARY KEY (`Y_id`),
CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
CREATE TABLE `Z` (
`Z_id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`X_id` int DEFAULT NULL,
PRIMARY KEY (`Z_id`),
CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
Maintenant, je ne sais pas combien de tables il y a dans la base de données qui contiennent des clés étrangères dans X comme les tables Y et Z. Y a-t-il une requête SQL que je peux utiliser pour retourner:
- Une liste des tables qui ont des clés étrangères dans X
- ET lesquelles de ces tables ont réellement des valeurs dans la clé étrangère