2016-09-24 124 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

謝謝大家我所做的就是去對象瀏覽器和殘疾的限制