Heim >Datenbank >MySQL-Tutorial >Wie finde ich Tabellen mit Fremdschlüsseln, die auf eine bestimmte Spalte verweisen?
Tabellen mit Fremdschlüsseln suchen, die auf eine bestimmte Spalte verweisen
In einer relationalen Datenbank ist es üblich, dass Tabellen Fremdschlüssel haben, die auf andere verweisen Primärschlüssel der Tabellen. Dadurch können Beziehungen zwischen Entitäten aufgebaut und durchgesetzt werden. Es kann jedoch schwierig sein, festzustellen, welche Tabellen über Fremdschlüssel verfügen, die auf eine bestimmte Spalte verweisen.
Um dieser Herausforderung zu begegnen, beschreiben wir eine Methode zum Identifizieren von Tabellen, deren Fremdschlüssel auf die Spalte einer bestimmten Tabelle verweisen und in denen tatsächliche Werte enthalten sind diese Fremdschlüssel.
Betrachten Sie das folgende Beispiel-Datenbankschema:
CREATE TABLE `X` ( `X_id` int NOT NULL auto_increment, `name` varchar(255) NOT NULL, PRIMARY KEY (`X_id`) ); CREATE TABLE `Y` ( `Y_id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `X_id` int DEFAULT NULL, PRIMARY KEY (`Y_id`), CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) ); CREATE TABLE `Z` ( `Z_id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `X_id` int DEFAULT NULL, PRIMARY KEY (`Z_id`), CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) );
In diesem Schema haben beide Tabellen Y und Z Fremdschlüssel Verweisen auf die X_id-Spalte der Tabelle Spalte der angegebenen Tabelle. Es stellt außerdem sicher, dass die Fremdschlüssel mindestens einen zugehörigen Wert haben.
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id';Um das Ergebnis weiter auf eine bestimmte Datenbank einzugrenzen, kann die folgende modifizierte Abfrage verwendet werden:
Hier Ihr_Datenbankname sollte durch den tatsächlichen Datenbanknamen ersetzt werden, in dem sich die Tabellen befinden.
Das obige ist der detaillierte Inhalt vonWie finde ich Tabellen mit Fremdschlüsseln, die auf eine bestimmte Spalte verweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!