Ho una tabella la cui chiave primaria è referenziata in diverse altre tabelle come chiave esterna. Per esempio:Come trovare tutte le tabelle che hanno chiavi esterne che fanno riferimento a table.column e hanno valori per quelle chiavi esterne?
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`)
)
Ora, non so quanti tavoli ci sono nel database che contiene le chiavi esterne in X come tavoli Y e Z. C'è una query SQL che posso usare per tornare:
- un elenco di tabelle che hanno le chiavi esterne in X
- e quali di queste tabelle in realtà hanno valori nella chiave esterna
questa domanda mi aiuta in così tante occasioni. Vorrei poter votare più di una volta! – iGbanam