Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle trouve une contrainte

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

Comme toutes les vues de dictionnaire de données, il s'agit d'une vue USER_CONSTRAINTS si vous souhaitez simplement vérifier votre schéma actuel et d'une vue DBA_CONSTRAINTS pour les utilisateurs administratifs.

La construction du nom de contrainte indique un nom de contrainte généré par le système. Par exemple, si nous spécifions NOT NULL dans une déclaration de table. Ou bien une clé primaire ou unique. Par exemple :

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' pour vérification, 'P' pour le primaire.

En général, c'est une bonne idée de donner un nom explicite aux contraintes relationnelles. Par exemple, si la base de données crée un index pour la clé primaire (ce qu'elle fera si cette colonne n'est pas déjà indexée), elle utilisera le nom de la contrainte pour nommer l'index. Vous ne voulez pas une base de données pleine d'index nommés comme SYS_C00935191 .

Pour être honnête, la plupart des gens ne prennent pas la peine de nommer les contraintes NOT NULL.