Tengo una tabla cuya clave principal se hace referencia en varias otras tablas como una clave externa. Por ejemplo:
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`)
)
Ahora, no sé cuántas tablas hay en la base de datos que contienen claves foráneas en X como las tablas Y y Z. ¿Hay alguna consulta SQL que pueda usar para devolver:
- Una lista de tablas que tienen claves foráneas en X
- Y cuáles de esas tablas realmente tienen valores en la clave externa