wake-up-neo.com

Alle Fremdschlüsseleinschränkungen für die gesamte MySQL-Datenbank anzeigen

Ich habe eine große Datenbank mit über 150 Tabellen, die ich kürzlich übergeben habe. Ich frage mich nur, ob es eine einfache Möglichkeit gibt, alle Fremdschlüsseleinschränkungen für die gesamte Datenbank anzuzeigen, und nicht auf Tabellenbasis.

37
Scott Wolf

Sie können dazu die Tabellen INFORMATION_SCHEMA verwenden. Zum Beispiel die INFORMATION_SCHEMA TABLE_CONSTRAINTS Tabelle.

So etwas sollte es tun:

select *
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where CONSTRAINT_TYPE = 'FOREIGN KEY'
64
RedFilter

Ich bevorzuge nützliche Informationen:

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'
12
genespos

Die derzeit vom Benutzer RedFilter akzeptierte Antwort funktioniert gut, wenn Sie nur eine Datenbank haben, aber nicht, wenn Sie viele haben.

Verwenden Sie nach der Eingabe von use information_schema; diese Abfrage, um Fremdschlüssel für name_of_db zu erhalten:

select * from `table_constraints` where `table_schema` like `name_of_db` and `constraint_type` = 'FOREIGN KEY'

Verwenden Sie diese Abfrage, um Fremdschlüssel für name_of_db in der weltweit beschreibbaren Datei output_filepath_and_name zu speichern.

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 '"';
6
Buttle Butkus

Diesen Code abfragen

select constraint_name,
   table_schema,
   table_name
from   information_schema.table_constraints

Sie erhalten den Constraint_Name und filtern das table_schema, das die Liste von database ist.

Schau dir das an

1
user3673263

SQL:

select constraint_name,
       table_schema,
       table_name
from   information_schema.table_constraints
where  constraint_schema = 'astdb'

Ausgabe:

+----------------------------+--------------+---------------------+
| 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           |
+----------------------------+--------------+---------------------+
0
Nisar