Tengo una gran base de datos con más de 150 tablas que me han entregado recientemente. Me pregunto si existe una manera fácil de ver todas las restricciones de clave externa para toda la base de datos en lugar de hacerlo por tabla.Ver todas las restricciones de clave externa para toda la base de datos MySQL
Respuesta
Puede usar las tablas INFORMATION_SCHEMA
para esto. Por ejemplo, la tabla INFORMATION_SCHEMA TABLE_CONSTRAINTS
.
Algo así debe hacerlo:
select *
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where CONSTRAINT_TYPE = 'FOREIGN KEY'
Parece que tiene exactamente lo que necesito. ¡Gracias! –
¿Hay alguna forma de enumerar realmente el nombre de campo de la clave externa también? – JoeTidee
La respuesta aceptada actualmente por RedFilter usuario funcionará bien si usted tiene sólo 1 base de datos, pero no si tiene muchos.
Después de entrar use information_schema;
utilizar esta consulta para obtener las claves externas de name_of_db
:
select * from `table_constraints` where `table_schema` like `name_of_db` and `constraint_type` = 'FOREIGN KEY'
Utilice esta consulta para obtener las claves externas para name_of_db
guardados en el archivo escribible mundo 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'
Salida:
+----------------------------+--------------+---------------------+
| 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 |
+----------------------------+--------------+---------------------+
consulta el código
select constraint_name,
table_schema,
table_name
from information_schema.table_constraints
Usted recibirá constraint_name, y filtrar la esquema_tabla que es la lista de database
.
Esto es lo que yo prefiero para obtener informaciones útiles:
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. Servidor SQL: ver todas las dependencias de la clave externa
- 2. ¿Cómo se eliminan todas las restricciones de clave externa en todas las tablas?
- 3. MySQL: ¿cómo puedo ver TODAS las restricciones en una tabla?
- 4. Django - Cómo evitar la creación de restricciones de la clave externa de la base de datos
- 5. ¿Es posible eliminar todas las restricciones de clave externa en una tabla a la vez en mySQL 5?
- 6. Ignorar restricciones de clave externa de MySQL en PHP
- 7. MySQL restricciones de clave externa, eliminar en cascada
- 8. Referenciar restricciones de clave externa y eliminar
- 9. mysql exportar volcado sql alphabatically, que causa error de restricciones de clave externa durante la importación
- 10. ¿Por qué usar restricciones de clave externa en MySQL?
- 11. Oracle todas las referencias de clave externa
- 12. SQL 2008 - Restricciones de clave externa en la vista INFORMATION_SCHEMA
- 13. Servidor SQL: eliminación de filas con restricciones de clave externa: ¿Pueden las transacciones anular las restricciones?
- 14. Truncar todas las tablas (la mayoría de las cuales tienen restricciones). Cómo colocarlos temporalmente
- 15. ¿SQLite3 no admite restricciones de clave externa?
- 16. truncar toda la tabla en la base de datos mysql
- 17. ¿Cómo elimino todas las restricciones de clave externa en una tabla en Sql Server 2000?
- 18. MySQL con Soft-Supresión, clave única y restricciones de clave externa
- 19. clave externa de MySQL para permitir NULL?
- 20. Cómo actualizar el valor de la clave externa en la base de datos mysql
- 21. ¿Bloqueo de filas en MySql InnoDb con restricciones de clave externa e índices aplicados?
- 22. gota MySQL Fuerza pasar por restricción de clave externa
- 23. columnas de base de datos y normalización clave externa
- 24. Buscar y reemplazar en toda la base de datos mysql
- 25. mysql: ver todas las conexiones abiertas a una base de datos determinada?
- 26. Agregue restricciones de clave externa a tablas existentes en Ruby on Rails (MySQL)
- 27. Creando restricciones de clave externa en ORMLite bajo SQLite
- 28. MySQL - Clave externa única
- 29. ¿Qué son las restricciones de la base de datos?
- 30. Pregunta de la clave externa de MySQL
Véase la respuesta de Andy aquí: https://stackoverflow.com/questions/201621/how-do-i-see- all-foreign-keys-to-a-table-or-column – omarjebari