La tabla KEY_COLUMN_USAGE
describe qué
columnas clave tienen restricciones.
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 |
Notas:
Si la restricción es una clave foránea, entonces esta es la columna de la clave foránea, no la columna a la que la clave foránea hace referencia.
El valor de ORDINAL_POSITION
es la
posición de la columna en la restricción, no la posición
de la columna en la tabla. Las posiciones de columnas se
numeran comenzando por 1.
El valor de POSITION_IN_UNIQUE_CONSTRAINT
es NULL
para restricciones de claves
primárias y únicas. Para restricciones de claves
foráneas, es la posición ordinal en la clave de la tabla a
la que se referencia.
Por ejemplo, suponga que hay dos tablas llamadas
t1
y t3
con las
siguientes definiciones:
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;
Para estas dos tablas, la tabla
KEY_COLUMN_USAGE
tiene dos registros:
Un registro con
CONSTRAINT_NAME
='PRIMARY',
TABLE_NAME
='t1',
COLUMN_NAME
='s3',
ORDINAL_POSITION
=1,
POSITION_IN_UNIQUE_CONSTRAINT
=NULL.
Un registro con CONSTRAINT_NAME
='CO',
TABLE_NAME
='t3',
COLUMN_NAME
='s2',
ORDINAL_POSITION
=1,
POSITION_IN_UNIQUE_CONSTRAINT
=1.
REFERENCED_TABLE_SCHEMA
,
REFERENCED_TABLE_NAME
, y
REFERENCED_COLUMN_NAME
se añadieron en
MySQL 5.0.6.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.