SQL抱怨不存在约束



我真的被这个难住了。我们有一张有两部分主键的桌子。部分是review_id(来自另一个表的外键)和时间戳。无论是谁设计了这个表,都没有意识到在某些情况下可能会导致两个条目具有相同的时间戳,我得到了"ORA-0001:唯一约束"错误。

然而,由于这个表是一个日志,所以它根本不需要主键,所以我删除了主键约束。尽管这种限制已经不存在,但我仍然会遇到同样的错误。

我试着在PK中添加元素以防止冲突,并恢复约束但禁用它。Oracle SQL Developer坚持认为数据库反映了我所做的更改,但这种行为表明它仍在使用原始PK。我认为这可能是缓存问题,但即使完全重新启动我的计算机也不会改变它。

欢迎提出任何建议。

我运行过的命令示例:

alter table "DATABASE"."DB_REVIEW_LOG" drop constraint "DB_REVIEW_LOG_PK";
update database.db_review_log set review_id=17494 where review_id = 17495;

这就是我得到的:

Error starting at line : 2 in command -
update database.db_review_log set review_id=17494 where review_id = 17495
Error report -
SQL Error: ORA-00001: unique constraint (DATABASE.DB_REVIEW_LOG_PK) violated
00001. 00000 -  "unique constraint (%s.%s) violated"
*Cause:    An UPDATE or INSERT statement attempted to insert a duplicate key.
           For Trusted Oracle configured in DBMS MAC mode, you may see
           this message if a duplicate entry exists at a different level.
*Action:   Either remove the unique restriction or do not insert the key.

事实证明,尽管它抱怨约束,但问题是一个同名的唯一索引导致了问题。谢谢你,Justin Cave

最新更新