War es hilfreich?

Lösung

Es gibt zwei Tabellen, die Sie abfragen können, um diese Informationen zu erhalten: INFORMATION_SCHEMA.KEY_COLUMN_USAGE .

Hier ist eine Abfrage aus den Kommentaren auf der letzteren oben verlinkten Seite, die zeigt, wie die Info bekommen Sie suchen.

SELECT CONCAT( table_name, '.', column_name, ' -> ', 
  referenced_table_name, '.', referenced_column_name ) AS list_of_fks 
FROM INFORMATION_SCHEMA.key_column_usage 
WHERE referenced_table_schema = 'test' 
  AND referenced_table_name IS NOT NULL 
ORDER BY table_name, column_name;

Verwenden des Schemanamen anstelle von 'test' oben.

Andere Tipps

Sie erhalten hier eine kleine Verbesserung gegenüber der @ Bill Lösung:

SELECT CONSTRAINT_SCHEMA AS db,
       CONCAT (
           TABLE_NAME,
           '.',
           COLUMN_NAME,
           ' -> ',
           REFERENCED_TABLE_NAME,
           '.',
           REFERENCED_COLUMN_NAME
       ) AS relationship 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'your_table_name'
ORDER BY CONSTRAINT_SCHEMA,
         TABLE_NAME,
         COLUMN_NAME;

In diesem Fall habe ich durch Beziehungen mit den „your_table_name“ Felder Filterung wurde und zu sehen, aus der Datenbank die Beziehung kommt.

Versuchen INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

SELECT TABLE_NAME,
       COLUMN_NAME,
       CONSTRAINT_NAME,
       REFERENCED_TABLE_NAME,
       REFERENCED_COLUMN_NAME 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'table_name'
      AND TABLE_SCHEMA = 'table_schema';
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top