sql >> Base de Datos >  >> RDS >> Oracle

Oracle encuentra una restricción

select * from all_constraints
where owner = '<NAME>'
and constraint_name = 'SYS_C00381400'
/

Como todas las vistas del diccionario de datos, esta es una vista USER_CONSTRAINTS si solo desea verificar su esquema actual y una vista DBA_CONSTRAINTS para usuarios administrativos.

La construcción del nombre de la restricción indica un nombre de restricción generado por el sistema. Por ejemplo, si especificamos NOT NULL en una declaración de tabla. O, de hecho, una clave primaria o única. Por ejemplo:

SQL> create table t23 (id number not null primary key)
  2  /

Table created.

SQL> select constraint_name, constraint_type
  2  from user_constraints
  3  where table_name = 'T23'
  4  /

CONSTRAINT_NAME                C
------------------------------ -
SYS_C00935190                  C
SYS_C00935191                  P

SQL>

'C' para verificación, 'P' para primaria.

En general, es una buena idea dar a las restricciones relacionales un nombre explícito. Por ejemplo, si la base de datos crea un índice para la clave principal (lo que hará si esa columna aún no está indexada), utilizará el nombre de la restricción o el nombre del índice. No desea una base de datos llena de índices con nombres como SYS_C00935191 .

Para ser honesto, la mayoría de las personas no se molestan en nombrar restricciones NOT NULL.