当前位置: 代码迷 >> Oracle开发 >> ORA-00001: 违背唯一约束条件
  详细解决方案

ORA-00001: 违背唯一约束条件

热度:77   发布时间:2016-04-24 06:56:20.0
ORA-00001: 违反唯一约束条件
 UPDATE siebel.S_DOC_AGREE_BU A SET
 A.BU_ID = ( select distinct(c.bu_id)
          from siebel.s_doc_agree b, siebel.S_ORG_EXT c
         WHERE A.AGREEMENT_ID = b.row_id 
           and c.par_row_id = B.X_ACCNT_ID);


a.bu_id 非自增列,没有约束唯一条件,只有这个条件:"BU_ID" IS NOT NULL  


求解
sql select

------解决方案--------------------
是不是主键
------解决方案--------------------
主键、或者唯一索引,查一下
------解决方案--------------------
引用:
 UPDATE siebel.S_DOC_AGREE_BU A SET
 A.BU_ID = ( select distinct(c.bu_id)
          from siebel.s_doc_agree b, siebel.S_ORG_EXT c
         WHERE A.AGREEMENT_ID = b.row_id 
           and c.par_row_id = B.X_ACCNT_ID);


a.bu_id 非自增列,没有约束唯一条件,只有这个条件:"BU_ID" IS NOT NULL  


求解


缺少 where 条件的。参考如下
UPDATE SIEBEL.S_DOC_AGREE_BU A
   SET A.BU_ID =
       (SELECT DISTINCT (C.BU_ID)
          FROM SIEBEL.S_DOC_AGREE B, SIEBEL.S_ORG_EXT C
         WHERE A.AGREEMENT_ID = B.ROW_ID
           AND C.PAR_ROW_ID = B.X_ACCNT_ID) WHERE A.AGREEMENT_ID = ????;