2016-09-24 87 views
0

我正试图在这里插入新表。但是,我得到(违反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是触发。我怎样才能绕过触发器?

+0

,如果你表现出'large_condo'表的架构这将是明智的,因为如果没有这一点,我们不必猜测你的问题是什么。大纲模式应包括所有列及其类型,以及任何约束(特别是唯一或主键约束)以及表上的任何触发器。我们可能不需要'condo_unit'表的模式。有''large_condo'是'condo_unit'表上的一个视图吗? (不太可能,但有趣的事情已经知道了!) –

+0

如果您使用的是不插入列的insert语句,这意味着您必须为每列提供一个值(否则,Oracle将不知道您尝试填充的列的子集)。如果您实际上正在运行您在此处发布的'insert'语句,则必须为'condo_id'插入一个值。我不知道是哪一列,但给主键通常是表的第一列,我猜你正在尝试使用'location_num'作为'condo_id',这可能没有意义,并且isn独特。 –

回答

0

您可能在表中的condo_unit上有一个主键。如果您再次插入相同的值,您将面临此错误。

或者如果您在NOT NULL列中插入空值。 或者可以在其上定义索引。描述表格并验证它们。

0

两种可能性,我能想到的:

  1. 的默认值设置为condo_id列。您应该能够通过查询USER_TAB_COLUMNS来查看此信息。

  2. 有一个触发器为condo_id列设置一个值。您可以在USER_TRIGGERS中查找触发器名称,然后在USER_SOURCE中查看触发器源。

0

谢谢大家我所做的就是去对象浏览器和残疾的限制