程序ORA-00001中的更新

时间:2012-11-20 09:41:05

标签: oracle plsql indexing sql-update

我在程序中有UPDATE的问题。程序编译,我看到(DBMS ...)结果示例100记录和错误
ORA-00001: unique constraint violated (CUSTOMER_INFO_COMM_METHOD_UX)

我的更新:

UPDATE customer_info_comm_method_tab SET Value=wynikOK WHERE 
         customer_id=cus_rec.customer_id AND method_id='E_MAIL' AND Value = p_stringWyn;
  1. wynikOK - 实际新值
  2. cus_rec.customer_id - 游标中的实际customer_id
  3. p_stringWyn - 表中的旧值
  4. key基于我使用的三个属性(CUSTOMER_ID,VALUE,METHOD_ID)

    当然我无法删除索引CUSTOMER_INFO_COMM_METHOD_UX,因为它不是我的数据库

    如果我评论更新程序编译100%没有错误但我需要进行此更新

1 个答案:

答案 0 :(得分:0)

这意味着您的新值(wynikOK)导致违规。 customer_id,您的新值(wynikOK)和方法ID的组合已经存在于表的另一行中。但这必须是独一无二的......

如果这些值组合(客户,价值,方法)不是唯一的,那么删除表格中的唯一约束。

其他值必须是唯一的。尝试为新值附加一些字符串,以便它是唯一的。假设您的值为1234,请尝试将日期附加到此值1234_23112012,以便始终保持唯一。