Heim  >  Artikel  >  Datenbank  >  Wie kann ich alle Fremdschlüssel einer Tabellenspalte anzeigen?

Wie kann ich alle Fremdschlüssel einer Tabellenspalte anzeigen?

WBOY
WBOYnach vorne
2023-09-07 20:41:071033Durchsuche

Wie kann ich alle Fremdschlüssel einer Tabellenspalte anzeigen?

Um alle Fremdschlüssel einer Tabelle oder Spalte anzuzeigen, ist der Befehl referenced_column_name

Erstellen Sie zunächst zwei Tabellen und verknüpfen Sie sie dann mithilfe von Fremdschlüsseleinschränkungen.

Erstellen Sie die erste Tabelle -

mysql> CREATE table ForeignTable
-> (
-> id int,
-> name varchar(200),
-> Fk_pk int
-> );
Query OK, 0 rows affected (0.43 sec)

Nachdem Sie die erste Tabelle erfolgreich erstellt haben, erstellen Sie die zweite Tabelle wie folgt -

mysql> CREATE table primaryTable1
-> (
-> Fk_pk int,
-> DeptName varchar(200),
-> Primary key(Fk_pk)
-> );
Query OK, 0 rows affected (0.48 sec)

Jetzt werden beide Tabellen mithilfe des Befehls alter und von Fremdschlüsseln verknüpft Es wurden auch Einschränkungen hinzugefügt. Seine Syntax lautet wie folgt:

alter table yourFirstTable add constraint anyConstraintName foreign key(column_name which is
acts foreign key in second table) yourSecondTable(column_name which acts primary key in
second table).

Die obige Syntax wird verwendet, um zwei Tabellen wie folgt zuzuordnen:

mysql> alter table ForeignTable add constraint constFKPK foreign key(Fk_pk) references
primaryTable1(Fk_pk);
Query OK, 0 rows affected (1.57 sec)
Records: 0 Duplicates: 0 Warnings: 0

Nun lautet die Syntax zum Anzeigen aller Fremdschlüssel einer Tabelle wie folgt:

Für eine Tabelle:

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME,
REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'yourReferencedTableName';

Jetzt Erstellen Sie eine Abfrage mit der obigen Syntax, um alle Fremdschlüssel anzuzeigen. Die Abfrage lautet wie folgt: -

mysql> SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
-> FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
-> WHERE REFERENCED_TABLE_NAME = 'primarytable1';

Das Folgende ist die Ausgabe -

+--------------+-------------+-----------------+-----------------------+------------------------+
| TABLE_NAME   | COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
+--------------+-------------+-----------------+-----------------------+------------------------+
| foreigntable | Fk_pk       | constFKPK       | primarytable1         | fk_pk                  |
+--------------+-------------+-----------------+-----------------------+------------------------+
1 row in set, 2 warnings (0.02 sec)

In der Beispielausgabe lautet der Einschränkungsname „constFKPK“ und der Tabellenname „foreigntable“. Für eine Spalte –

SELECT
TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = 'yourDatabaseName' AND
REFERENCED_TABLE_NAME = 'yourreferencedtablename' AND
REFERENCED_COLUMN_NAME = 'yourreferencedcolumnname';

gibt eine Abfrage aus, die alle Fremdschlüssel der Spalte unter Verwendung der obigen Syntax anzeigt. Die Abfrage lautet wie folgt Wie folgt: Die von

mysql> SELECT
-> TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
-> FROM
-> INFORMATION_SCHEMA.KEY_COLUMN_USAGE
-> WHERE
-> REFERENCED_TABLE_SCHEMA = 'business' AND
-> REFERENCED_TABLE_NAME = 'primarytable1' AND REFERENCED_COLUMN_NAME
= 'fk_pk';

erhaltene Ausgabe lautet wie folgt:

+--------------+-------------+-----------------+-----------------------+------------------------+
| TABLE_NAME   | COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_TABLE_NAME |REFERENCED_COLUMN_NAME  |
+--------------+-------------+-----------------+-----------------------+------------------------+
| foreigntable | Fk_pk       | constFKPK       | primarytable1         | fk_pk                  |
+--------------+-------------+-----------------+-----------------------+------------------------+
1 row in set, 2 warnings (0.03 sec)

Das obige ist der detaillierte Inhalt vonWie kann ich alle Fremdschlüssel einer Tabellenspalte anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen