Voglio eliminare una tabella ma è referenziata da una o più tabelle. Come posso scoprire quali tabelle fanno riferimento a questa tabella senza dover esaminare ognuna delle tabelle nel database una per una?MySQL: come faccio a sapere quali tabelle fanno riferimento a una tabella specifica?
risposta
select table_name
from information_schema.KEY_COLUMN_USAGE
where table_schema = 'my_database'
and referenced_table_name = 'my_table_here';
Questo funziona.
Utilizzare il rospo per caricarlo ed è possibile visualizzare i riferimenti attraverso il diagramma. assicurati anche di non avere alcun codice app che passi sql dal front-end, lasciando cadere la tabella potrebbe causare l'interruzione dell'app.
Download link http://www.toadsoft.com/toadmysql/FreewareDownload.htm
Se si utilizza InnoDB provare questo SHOW TABLE STATUS DA YourDatabaseName come 'T' http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
Sto usando Linux, quindi lo strumento che suggerisci non funzionerà. –
Se si utilizza InnoDB provare questo SHOW TABLE STATUS DA YourDatabaseName LIKE 'T' http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html –
select table_name
from information_schema.referential_constraints
where referenced_table_name = 'parent table here';
La tabella referential_constraints non esiste in information_schema. Stavo cercando in questo database una risposta ma non la trovo. La versione di MySQL è 5.0.51a-24-log (Debian) –
sto usando 5.1.31 –
Guarda la tabella KEY_COLUMN_USAGE nello schema iformation_schema.
dalla riga di comando mysql: mostra lo stato tabella
si potrebbe provare MySQL Workbench, che permette di estrarre schema É.R.. In questo puoi trovare tutto ciò che ti serve sulle tabelle del tuo database.
Se è installato phpMyAdmin, è possibile utilizzare il suo designer feature per visualizzare le relazioni della tabella.
Per utilizzare il designer, selezionare un database, quindi cercare la scheda Designer.
http://stackoverflow.com/q/806989 ha più voti di questa domanda ... Anche se questo è stato chiesto e risposto prima. – Fr0zenFyr