Die KEY_COLUMN_USAGE
-Tabelle beschreibt, welche
Schlüsselspalten Constraints haben.
Standard Name | SHOW name |
Remarks |
CONSTRAINT_CATALOG |
NULL |
|
CONSTRAINT_SCHEMA |
||
CONSTRAINT_NAME |
||
TABLE_CATALOG |
||
TABLE_SCHEMA |
||
TABLE_NAME |
||
COLUMN_NAME |
||
ORDINAL_POSITION |
||
POSITION_IN_UNIQUE_CONSTRAINT |
||
REFERENCED_TABLE_SCHEMA |
||
REFERENCED_TABLE_NAME |
||
REFERENCED_COLUMN_NAME |
Hinweise:
Ist der Constraint ein Fremdschlüssel, so ist dies die Spalte des Fremdschlüssels und nicht die Spalte, auf die er verweist.
Der Wert von ORDINAL_POSITION
gibt die
Position der Spalte im Constraint und nicht in der Tabelle
wieder. Die Spaltenpositionen werden beginnend mit 1
durchnummeriert.
Der Wert von POSITION_IN_UNIQUE_CONSTRAINT
ist NULL
für Unique- und
Fremdschlüssel-Constraints. Bei Fremdschlüssel-Constraints
ist es die Ordinalposition im Schlüssel der referenzierten
Tabelle.
Nehmen wir beispielsweise an, wir hätten zwei Tabellen namens
t1
und t3
, die wie folgt
definiert sind:
CREATE TABLE t1 ( s1 INT, s2 INT, s3 INT, PRIMARY KEY(s3) ) ENGINE=InnoDB; CREATE TABLE t3 ( s1 INT, s2 INT, s3 INT, KEY(s1), CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3) ) ENGINE=InnoDB;
Für diese beiden Tabellen hat die Tabelle
KEY_COLUMN_USAGE
zwei Zeilen:
eine Zeile mit CONSTRAINT_NAME
=
'PRIMARY'
,
TABLE_NAME
= 't1'
,
COLUMN_NAME
= 's3'
,
ORDINAL_POSITION
=
1
,
POSITION_IN_UNIQUE_CONSTRAINT
=
NULL
eine Zeile mit CONSTRAINT_NAME
=
'CO'
, TABLE_NAME
=
't3'
, COLUMN_NAME
=
's2'
,
ORDINAL_POSITION
=
1
,
POSITION_IN_UNIQUE_CONSTRAINT
=
1
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.