Visualizzare tutte le Foreign Key di una tabella in MySQL
Oggi è giorno di pesanti modifiche al db, tra le quali anche la rinomina di alcune chiavi primarie che fungono da Foreign Key di altre tabelle.
Per evitare di andare tabella per tabella a memoria, ho trovato una query che me le indica tutte in automatico.
In sostanza, con questa query, tiriamo fuori un risultato del genere:
TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
---|---|---|---|---|
conti_visione_righe | rcv_articolo_fk | conti_visione_righe_ibfk_2 | articoli | articolo_nmat |
fatture_righe | r_articolo_fk | fatture_righe_ibfk_2 | articoli | articolo_nmat |
rientri_righe | rir_articolo_fk | rientri_righe_ibfk_2 | articoli | articolo_nmat |
rigord | rigord_articolo_fk | rigord_ibfk_2 | articoli | articolo_nmat |
rigord_tmp | rigord_articolo_fk | rigord_tmp_ibfk_1 | articoli | articolo_nmat |
Questa la query:
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_SCHEMA = 'YOUR_DB' AND REFERENCED_TABLE_NAME = 'YOUR_TABLE';
Trovo questa query fondamentale quando avete db con parecchie tabelle.
Enjoy!
database mysql foreign key
Commentami!