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

唯一约束实际上可能是主键约束——至少顾名思义是这样。

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

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

说了这么多:尝试使用

ALTER TABLE SS_ALERT_EVENTS
  删除主键

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

于 2011-03-05T13:18:29.263 回答