【发布时间】:2010-10-07 12:23:49
【问题描述】:
我可以识别出由于唯一值约束导致的错误消息,我的表是“分支”,以及 SYS_C004023 是从哪里来的。我检查了分支表,没有重复值。可能是什么问题。
【问题讨论】:
标签: sql oracle oracle10g unique-constraint ora-00001
我可以识别出由于唯一值约束导致的错误消息,我的表是“分支”,以及 SYS_C004023 是从哪里来的。我检查了分支表,没有重复值。可能是什么问题。
【问题讨论】:
标签: sql oracle oracle10g unique-constraint ora-00001
SYS_C004023 是从哪里来的
这是一个系统生成的约束名称,Oracle 在创建约束时创建该名称,但没有明确命名,例如
create table mytable (col1 integer primary key);
mytable 上的主键约束将由系统生成,因为我没有像这样显式命名它:
create table mytable (col1 integer constraint mytable_pk primary key);
你可以像这样找出这个约束在哪个表上:
select table_name
from all_constraints
where owner = 'HR'
and constraint_name = 'SYS_C004023';
您可以像这样找出它使哪些列独一无二:
select column_name
from all_cons_columns
where owner = 'HR'
and constraint_name = 'SYS_C004023';
没有重复值
不,不会有,多亏了限制。插入或更新行的尝试失败,从而违反了唯一性约束。
【讨论】: