Fremdschlüssel in MySQL anzeigen

Preet Sanghavi 30 Januar 2023
  1. Erstellen Sie eine Tabelle in MySQL
  2. Fremdschlüssel einer Tabelle in MySQL anzeigen
Fremdschlüssel in MySQL anzeigen

In diesem Tutorial möchten wir untersuchen, wie die Fremdschlüssel einer Tabelle und Spalte in MySQL angezeigt werden.

Die Art von Schlüsseln, die auf den Hauptschlüssel, auch Primärschlüssel einer anderen Tabelle genannt, verweisen, werden als Fremdschlüssel bezeichnet. Bei der Arbeit mit MySQL ist es wichtig, die Fremdschlüssel einer Tabelle zu verstehen.

Darüber hinaus können einer Spalte einer bestimmten Tabelle auch Fremdschlüssel zugeordnet sein. Versuchen wir zu verstehen, wie diese Fremdschlüssel abgerufen werden.

Erstellen Sie eine Tabelle in MySQL

Bevor wir beginnen, erstellen wir einen Dummy-Datensatz, mit dem wir arbeiten können. Hier erstellen wir eine Tabelle, student_details, zusammen mit einigen Zeilen.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

Die obige Abfrage erstellt eine Tabelle mit Zeilen, die die Vor- und Nachnamen der Schüler enthalten. Um die Einträge in den Daten anzuzeigen, verwenden wir den folgenden Code:

SELECT * FROM student_details;

Der obige Code würde die folgende Ausgabe ergeben:

stu_id  stu_firstName   stu_lastName
1         Preet         Sanghavi
2         Rich          John
3         Veron         Brow
4         Geo           Jos
5         Hash          Shah
6         Sachin        Parker
7         David	        Miller

Fremdschlüssel einer Tabelle in MySQL anzeigen

Um die Fremdschlüssel einer Tabelle in MySQL abzurufen, verwenden wir den folgenden Codeblock:

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>';

Wie wir sehen können, müssen wir in der oben erwähnten Abfrage die Datenbank- und Tabellennamen eingeben, um die Fremdschlüssel abzurufen. Diese Aufgabe kann mit der folgenden Abfrage erreicht werden:

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<boatdb>' AND
  REFERENCED_TABLE_NAME = '<student_details>';

Die oben erwähnte Abfrage hat den Datenbanknamen als boatdb und den Tabellennamen als student_details, wie bereits erwähnt. Die Ausgabe des oben genannten Codes lautet wie folgt:

1,TABLE_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
2,COLUMN_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
3,CONSTRAINT_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
4,REFERENCED_TABLE_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
5,REFERENCED_COLUMN_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0

Darüber hinaus können wir auch die Fremdschlüssel finden, die einer bestimmten Spalte zugeordnet sind. Dies kann mit Hilfe der folgenden Abfrage erreicht werden:

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = 'boatdb' AND
  REFERENCED_TABLE_NAME = 'student_details' AND
  REFERENCED_COLUMN_NAME = 'student_firstName';

Wie wir sehen können, wurde ein zusätzlicher REFERENCED_COLUMN_NAME hinzugefügt.

Daher können wir mit Hilfe dieser Technik die Fremdschlüssel, die einer bestimmten Tabelle und Spalte zugeordnet sind, effizient anzeigen.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Verwandter Artikel - MySQL Key