Heim >Datenbank >MySQL-Tutorial >Wie finde ich Fremdschlüsselreferenzen und ihre ausgefüllten Werte in einer Datenbank?
Fremdschlüsselreferenzen und ausgefüllte Werte finden
In einem Datenbankschema gibt es häufig Tabellen, die über Fremdschlüssel auf andere Tabellen verweisen. Um Tabellen mit Fremdschlüsseln zu identifizieren, die auf eine bestimmte Tabelle und Spalte verweisen, sowie Tabellen, in denen diese Fremdschlüssel Daten enthalten, kann die folgende Abfrage verwendet werden:
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id';
Diese Abfrage ruft Informationen aus der Tabelle KEY_COLUMN_USAGE in ab information_schema-Datenbank, die Metadaten über Fremdschlüsselbeziehungen enthält. Durch Filtern der Ergebnisse nach dem angegebenen REFERENCED_TABLE_NAME (X) und REFERENCED_COLUMN_NAME (X_id) listet die Abfrage alle Tabellen auf, deren Fremdschlüssel auf die X_id-Spalte der Wenn Schlüssel enthalten sind, kann die Abfrage um eine Prüfung auf Nicht-Null-Werte im Fremdschlüssel erweitert werden Spalte:
Diese aktualisierte Abfrage ruft den Tabellennamen zusammen mit den Fremdschlüsselmetadaten ab und stellt so sicher, dass nur Tabellen mit ausgefüllten Fremdschlüsseln in die Ergebnisse einbezogen werden. Durch Sortieren der Ergebnisse nach Tabellennamen bietet die Ausgabe eine klare Übersicht darüber, welche Tabellen Fremdschlüsselverweise auf die angegebene Tabelle und Spalte haben und welche dieser Tabellen Daten im Fremdschlüsselfeld enthalten.SELECT t.TABLE_NAME, kcu.* FROM information_schema.KEY_COLUMN_USAGE kcu JOIN information_schema.TABLES t ON t.TABLE_SCHEMA = kcu.TABLE_SCHEMA AND t.TABLE_NAME = kcu.TABLE_NAME WHERE kcu.REFERENCED_TABLE_NAME = 'X' AND kcu.REFERENCED_COLUMN_NAME = 'X_id' ORDER BY t.TABLE_NAME;
Das obige ist der detaillierte Inhalt vonWie finde ich Fremdschlüsselreferenzen und ihre ausgefüllten Werte in einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!