Identificare tutte le referenze di una FOREIGN KEY in MySQL e MariaDB
In pratica, su un database MariaDB, avevo la necessità di capire se alcuni campi di alcune tabelle fossere collegare ad altre tabelle come FOREIGN KEY.
Avere queste informazioni è molto semplice andando ad interrogare information_schema.
Ed ovviamente tutto ciò vale anche per MySQL.
Vediamo un paio di esempi:
SELECT * FROM information_schema.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'VOSTRA_TABELLA'
AND REFERENCED_COLUMN_NAME = 'CAMPO';
Dovete solo sostituire:
- VOSTRA_TABELLA mettendoci la tabella dove avete il campo da controllare
- CAMPO mettendoci la colonna da controllare
Volendo possiamo anche specificare il database di riferimento, nel caso se avessimo più di uno con stesse tabelle/campi:
SELECT * FROM information_schema.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'VOSTRA_TABELLA'
AND REFERENCED_COLUMN_NAME = 'CAMPO'
AND TABLE_SCHEMA = 'DATABASE';
Enjoy!
database mariadb mysql information_schema key_column_usage
Commentami!