Problema:
Quiere encontrar los nombres de las restricciones en una tabla en MySQL.
Ejemplo:
Queremos mostrar los nombres de las restricciones en la tabla student
.
Solución:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Aquí está el resultado:
NOMBRE_TABLA | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
estudiante | CLAVE PRINCIPAL | PRIMARIO |
estudiante | ÚNICO | número_personal |
estudiante | LLAVE EXTRANJERA | estudiante_ibfk_1 |
estudiante | COMPROBAR | student_chk_1 |
Discusión:
Utilice la vista table_constraints
en el information_schema
esquema. Esta vista contiene muchas columnas, pero las más importantes son table_name
, constraint_type
y constraint_name
. La columna table_name le da el nombre de la tabla en la que se define la restricción, y la columna constraint_name
contiene el nombre de la restricción. La columna constraint_type
indica el tipo de restricción:PRIMARY KEY
para el tipo de clave principal, FOREIGN KEY
para el tipo de clave foránea, UNIQUE
para los valores únicos y CHECK
para la comprobación de restricciones. En nuestro ejemplo, puede ver la restricción llamada PRIMARY
para la clave principal en el student
mesa. El constraint_type
columna le brinda información sobre el tipo de cada restricción; para la clave principal, es PRIMARY KEY
.