Problema:
Quiere encontrar los nombres de las restricciones en una tabla en Oracle.
Ejemplo:
Queremos mostrar los nombres de las restricciones en la tabla student
.
Solución:
select CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME from USER_CONSTRAINTS where TABLE_NAME='STUDENT';
Aquí está el resultado:
CONSTRAINT_NAME | CONSTRAINT_TYPE | NOMBRE_TABLA |
---|---|---|
SYS_C007376 | R | ESTUDIANTE |
SYS_C007374 | P | ESTUDIANTE |
SYS_C007375 | T | ESTUDIANTE |
SYS_C007372 | C | ESTUDIANTE |
Discusión:
En Oracle, use la vista user_constraints
para mostrar los nombres de las restricciones en la base de datos. La columna constraint_name
contiene el nombre de la restricción, constraint_type
indica el tipo de restricción y table_name
contiene el nombre de la tabla a la que pertenece la restricción. En la columna tipo_restricción, el valor "R" es para la clave externa, "P" es para la clave principal, "U" es para la restricción de unicidad y "C" es para la verificación de la restricción. En nuestro ejemplo, hay una restricción en la tabla student
del tipo P (clave primaria) cuyo nombre es SYS_C007374
.