0

プロシージャの 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 - テーブル内の古い値

キーは、私が使用する 3 つの属性 (CUSTOMER_ID、VALUE、METHOD_ID) に基づいています。

もちろん、私のデータベースではないため、インデックス CUSTOMER_INFO_COMM_METHOD_UX を削除することはできません

更新手順をコメントした場合、エラーなしで 100% コンパイルされますが、この更新を行う必要があります

4

1 に答える 1

0

これは、新しい値 (wynikOK) が違反を引き起こしていることを意味します。customer_id 、新しい値 (wynikOK)、およびメソッド ID の組み合わせは、テーブルの別の行に既に存在します。しかし、これはユニークでなければなりません...

この値の組み合わせ (顧客、値、メソッド) が一意にならない場合は、テーブル内の一意の制約を削除します..

それ以外の値は一意である必要があります。新しい値が一意になるように、いくつかの文字列を追加してみてください。値が 1234 の場合、この値 1234_23112012 に日付を追加して、これが常に一意になるようにしてください。

于 2012-12-02T04:24:15.813 に答える