2010-10-07 38 views

Répondre

1

where did SYS_C004023 come

C'est un nom de contrainte généré par le système, ce qui crée Oracle lorsqu'une contrainte est créée sans être explicitement nommée par exemple

create table mytable (col1 integer primary key); 

La contrainte de clé primaire sur MyTable sera généré par le système puisque je ne l'ai pas explicitement un nom comme ceci:

create table mytable (col1 integer constraint mytable_pk primary key); 

Vous pouvez savoir quelle table cette contrainte est comme ça:

select table_name 
from all_constraints 
where owner = 'HR' 
and constraint_name = 'SYS_C004023'; 

Et vous pouvez savoir quelles colonnes il est unique comme ceci:

select column_name 
from all_cons_columns 
where owner = 'HR' 
and constraint_name = 'SYS_C004023'; 

there is no value duplication

Non, il n'y aura pas, grâce à la contrainte. Ce qu'il y a eu, c'est qu'une tentative a échoué pour insérer ou mettre à jour une ligne afin que la contrainte d'unicité soit violée.

+0

Merci beaucoup pour la réponse, c'est comme j'ai copié quelques 10-20 enregistrements de mysql table à Oracle ... et les ID primaires où de 1-20. Mais, j'ai ajouté la séquence aussi, à partir de 1, donc je pense, qui a fait le problème, quand j'ai tronqué tout et inséré à nouveau et ça a fonctionné ... ouf .. – unni