插入时Oracle唯一约束错误

时间:2011-03-05 12:42:39

标签: sql oracle unique-constraint ora-00001

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表中没有显示此类约束。我该怎么办?

1 个答案:

答案 0 :(得分:3)

唯一约束实际上可能是主要的约束 - 至少这就是名称所暗示的。

删除表的主键可能会产生非常糟糕的副作用,它可能会破坏依赖此主键的应用程序(并且您还必须删除引用该表的所有外键,然后才能删除主键)

该主键是出于某种目的而创建的,因此在盲目删除之前,您应该咨询创建该模式的人,并确保不需要主键(或者应该重新定义)。

说完这一切:尝试使用

删除PK
ALTER TABLE SS_ALERT_EVENTS 
  DROP PRIMARY KEY

但请仔细检查这是否是一个明智的决定!