Heim >Datenbank >MySQL-Tutorial >Wie finde ich Tabellen mit Fremdschlüsseln, die auf eine bestimmte Spalte verweisen?

Wie finde ich Tabellen mit Fremdschlüsseln, die auf eine bestimmte Spalte verweisen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-16 10:19:10410Durchsuche

How to Find Tables with Foreign Keys Referencing a Specific Column?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn