首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取ORA-00001(违反唯一约束)何时COMMITing?

获取ORA-00001(违反唯一约束)何时COMMITing?
EN

Stack Overflow用户
提问于 2010-02-01 10:39:58
回答 2查看 2.3K关注 0票数 7

我们在批处理作业中得到一个ORA-00001 (违反了唯一约束)。但是,错误发生在发出提交时,而不是插入违规记录时。

问题:

  • 为什么要在提交时检查唯一的约束?(我们是否可以使用某些设置,以便在插入时进行检查?)
  • 如何查找导致唯一约束冲突的违规的SQL/记录器?

任何帮助都是非常感谢的!

补充资料/问题:

“违规”约束被标记为即时和不可推迟的约束。可以在事务中重写此操作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-01 10:52:17

约束可以标记/定义为可推迟的。在这种情况下,约束检查可以是“立即”检查,也可以是“延迟检查”。在定义约束时,可以设置默认值initially immediateinitially deferred。当设置为deferred时,约束在提交事务之前不会执行。

您可以改变可推迟约束的行为,例如

代码语言:javascript
复制
set constraints all immediate;

另见:http://www.oracle.com/technology/oramag/oracle/03-nov/o63asktom.html

票数 5
EN

Stack Overflow用户

发布于 2010-02-01 10:51:51

约束可以定义为延迟,这意味着它们是在提交时检查的,而不是在数据更改时检查的。请参阅以下两个链接:

http://www.oracle-base.com/articles/8i/ConstraintCheckingUpdates.php

http://www.oracle.com/technology/oramag/oracle/03-nov/o63asktom.html

希望它能帮上忙

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2176021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档