日期:2014-05-17  浏览次数:20966 次

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 = ????;