Ho un grande database con oltre 150 tabelle che ho ricevuto di recente. Mi chiedo solo se esiste un modo semplice per visualizzare tutti i vincoli di chiavi esterne per l'intero DB anziché su una base per tabella.Visualizza tutti i vincoli di chiave esterna per l'intero database MySQL
risposta
È possibile utilizzare le tabelle INFORMATION_SCHEMA
per questo. Ad esempio, la tabella INFORMATION_SCHEMA TABLE_CONSTRAINTS
.
Qualcosa del genere dovrebbe farlo:
select *
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where CONSTRAINT_TYPE = 'FOREIGN KEY'
Sembra che abbia esattamente quello di cui ho bisogno. Grazie! –
Esiste un modo per elencare effettivamente il nome del campo della chiave esterna? – JoeTidee
La risposta attualmente accettato da RedFilter utente funziona bene se avete solo 1 database, ma non se si hanno molti.
Dopo aver inserito use information_schema;
utilizzare questa query per ottenere le chiavi esterne per name_of_db
:
select * from `table_constraints` where `table_schema` like `name_of_db` and `constraint_type` = 'FOREIGN KEY'
Utilizzare questa query per ottenere le chiavi esterne per name_of_db
salvati in un file scrivibile-mondo output_filepath_and_name
:
select * from `table_constraints` where `table_schema` like "name_of_db" and `constraint_type` = 'FOREIGN KEY' into outfile "output_filepath_and_name" FIELDS TERMINATED BY ',' ENCLOSED BY '"';
SQL :
select constraint_name,
table_schema,
table_name
from information_schema.table_constraints
where constraint_schema = 'astdb'
uscita:
+----------------------------+--------------+---------------------+
| constraint_name | table_schema | table_name |
+----------------------------+--------------+---------------------+
| PRIMARY | astdb | asset_category |
| PRIMARY | astdb | asset_type |
| PRIMARY | astdb | asset_valuation |
| PRIMARY | astdb | assets |
| PRIMARY | astdb | com_mst |
| PRIMARY | astdb | com_typ |
| PRIMARY | astdb | ref_company_type |
| PRIMARY | astdb | supplier |
| PRIMARY | astdb | third_party_company |
| third_party_company_ibfk_1 | astdb | third_party_company |
| PRIMARY | astdb | user |
| PRIMARY | astdb | user_role |
+----------------------------+--------------+---------------------+
Query questo codice
select constraint_name,
table_schema,
table_name
from information_schema.table_constraints
Otterrete constraint_name, e filtrare il TABLE_SCHEMA che è l'elenco dei database
.
Questo è quello che io preferisco avere informazioni utili:
SELECT CONSTRAINT_NAME,
UNIQUE_CONSTRAINT_NAME,
MATCH_OPTION,
UPDATE_RULE,
DELETE_RULE,
TABLE_NAME,
REFERENCED_TABLE_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = 'your_database_name'
- 1. MySQL - condizionali vincoli di chiave esterna
- 2. Vincoli chiave esterna MySQL, eliminazione cascata
- 3. Modifica chiave primaria MySQL quando vincoli di chiave esterna esiste
- 4. Chiave esterna cross-database Mysql
- 5. Come eliminare tutti i vincoli di chiave esterna in tutte le tabelle?
- 6. MySQL cambia tipo di chiave esterna
- 7. Come rendere affidabili i vincoli di chiave esterna?
- 8. SQLite3 non supporta i vincoli di chiave esterna?
- 9. È possibile rilasciare tutti i vincoli di chiave esterna su una tabella in una volta in mySQL 5?
- 10. Come si eliminano tutti i vincoli di chiave esterna in una tabella in Sql Server 2000?
- 11. Domanda chiave esterna MySQL
- 12. SQL Server: eliminazione di righe con vincoli di chiave esterna: le transazioni possono sovrascrivere i vincoli?
- 13. SQL 2008: vincoli di chiave esterna nella vista INFORMATION_SCHEMA
- 14. Elimina chiave esterna senza nome in MySql
- 15. Elenco dei vincoli dal database MySQL
- 16. Come aggiornare il valore della chiave esterna nel database mysql
- 17. Forza goccia mysql bypassando vincolo di chiave esterna
- 18. Modifica convenzione di denominazione dei vincoli di chiave esterna
- 19. Visualizza i nomi di tutti i vincoli per una tabella in Oracle SQL
- 20. Differenza tra vincoli di chiave esterna e riferimenti in Rails
- 21. Associazione Doctrine 2 senza vincoli di chiave esterna
- 22. Tabella troncata Knex con vincoli di chiave esterna
- 23. Script T-SQL per copiare tutti i vincoli di tabella
- 24. CASCADE DELETE su due vincoli di chiave esterna
- 25. Chiave esterna per chiave composta
- 26. sintassi MySQL nella creazione di chiave esterna
- 27. MySQL: Inserisci se esiste una chiave esterna
- 28. Phpmyadmin versione 4: la vista Relazione a volte non mostra i vincoli di chiave esterna
- 29. Disabilita temporaneamente i vincoli
- 30. Mappatura di una chiave primaria come chiave esterna nel database
risposta di Andy Vedi qui: https://stackoverflow.com/questions/201621/how-do-i-see- all-foreign-keys-to-a-table-or-column – omarjebari