J'ai une grande base de données avec plus de 150 tables que j'ai récemment reçu. Je me demande simplement s'il existe un moyen simple d'afficher toutes les contraintes de clé étrangère pour l'ensemble de la base de données plutôt que sur chaque table.
Vous pouvez utiliser les tables INFORMATION_SCHEMA
pour cela. Par exemple, le INFORMATION_SCHEMA TABLE_CONSTRAINTS
table.
Quelque chose comme ça devrait le faire:
select *
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where CONSTRAINT_TYPE = 'FOREIGN KEY'
C'est ce que je préfère obtenir des informations utiles:
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'
La réponse actuellement acceptée par l'utilisateur RedFilter fonctionnera correctement si vous ne possédez qu'une base de données, mais pas si vous en avez plusieurs.
Après avoir entré use information_schema;
, utilisez cette requête pour obtenir les clés étrangères pour name_of_db
:
select * from `table_constraints` where `table_schema` like `name_of_db` and `constraint_type` = 'FOREIGN KEY'
Utilisez cette requête pour obtenir des clés étrangères pour name_of_db
enregistrées dans un fichier enregistrable: 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 '"';
Interroger ce code
select constraint_name,
table_schema,
table_name
from information_schema.table_constraints
Vous obtiendrez nom_contrainte et filtrerez le schéma_table qui est la liste de database
.
SQL:
select constraint_name,
table_schema,
table_name
from information_schema.table_constraints
where constraint_schema = 'astdb'
Sortie:
+----------------------------+--------------+---------------------+
| 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 |
+----------------------------+--------------+---------------------+