【发布时间】:2016-09-24 23:58:42
【问题描述】:
我正在尝试将值插入到此处的新表中。但是,我得到(ORA-00001:违反唯一约束(MYSCHEMA.SYS_C007106)),它将condo_id 声明为唯一。即使我没有将condo_id 插入到新表中。我该如何解决这个问题?
insert into large_condo
select location_num, unit_num, bdrms, baths, condo_fee, owner_num
from condo_unit
where sqr_ft > 1500;
额外信息:
condo_id 是触发器。如何绕过触发器?
【问题讨论】:
-
如果您显示
large_condo表的架构是明智的,因为没有它,我们不得不猜测您的问题是什么。大纲模式应包括所有列及其类型,以及任何约束(尤其是唯一或主键约束)以及表上的任何触发器。我们可能不需要condo_unit表的模式。large_condo是condo_unit表上的视图是否有任何危险? (不太可能,但更有趣的事情已经知道了!) -
如果您使用未列出列的
insert语句,这意味着您必须为每一列提供一个值(否则,Oracle 将不知道您是哪个列的子集试图填充)。如果您实际上正在运行您在此处发布的insert语句,则必须为condo_id插入一个值。我不知道那是哪一列,但主键通常是表的第一列,我猜你正在尝试使用location_num作为condo_id,这可能没有意义并且不是不是独一无二的。