1
INSERT INTO SS_ALERT_EVENTS (  ALERT_ID, EVENT_ID, TIME_DURATION, ALERT_EVENT_EFFECT, DATASET_ASSIGN_RULE, KEY_FIELDS_ASSIGN_RULE, SIDE, ALERT_VALIDATION_RULE, UNIQUE_ID ) VALUES ( 'test1', 7 ,  0, 1 ,  NULL,  '5b414c4552545f494e535452554d454e542e496e737472756d656e742049445d203a3d205b54524144455f5245504f52542e496e737472756d656e742049445d3b',  -1,  '5b414c4552542e416374696f6e5d203a3d20313b', 1)
*
ERROR at line 1:
ORA-00001: unique constraint (ESV31SURV.PK_SS_ALERT_EVENTS) violated

EVENT_IDフィールドが問題です。でもとにかく挿入したいです。しかし、その名前の制約を削除しようとすると、そのような制約はないと表示されます。さらに、そのような制約はUSER_CONSTRAINTSテーブルに表示されません。私は何をすべきか?

4

1 に答える 1

3

一意性制約は、実際には主キー制約である可能性があります。少なくとも、その名前が示すとおりです。

テーブルの主キーを削除すると、非常に悪い副作用が発生する可能性があり、この主キーに依存するアプリケーションが破損する可能性があります(また、主キーを削除する前に、そのテーブルを参照するすべての外部キーを削除する必要があります)。

その主キーは目的を持って作成されたため、やみくもにドロップする前に、そのスキーマを作成した人に相談し、主キーが不要(または再定義)されていないことを確認する必要があります。

これをすべて言った:を使用してPKをドロップしてみてください

ALTER TABLE SS_ALERT_EVENTS
  主キーを削除します

しかし、これが本当に賢明な決定であるかどうかを再確認してください!

于 2011-03-05T13:18:29.263 に答える