`
winit
  • 浏览: 13991 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle defered constraint

 
阅读更多
今天同事遇到一个问题,发现UI可能需要交互一个有唯一性约束的column的两个值,比如叫id,一个值是1,一个是2,UI传过来的是两句update(其实是一个batch里面做的)。由于是同一个transaction,就会报错。解决办法是参考了http://www.rhinocerus.net/forum/databases-oracle-misc/327785-problem-updating-unique-values.html:

This works fine on 9i:

CREATE TABLE primes (
rank INT NOT NULL PRIMARY KEY,
prime INT NOT NULL);

INSERT INTO primes VALUES (1,3);
INSERT INTO primes VALUES (2,2);
COMMIT;

ALTER TABLE primes
ADD CONSTRAINT unique_prime
UNIQUE (prime) DEFERRABLE INITIALLY DEFERRED;

UPDATE primes SET prime = 2 WHERE rank = 1;
UPDATE primes SET prime = 3 WHERE rank = 2;
COMMIT;

Without deferrable constraint checking, this would also work:

UPDATE primes
SET prime = CASE rank WHEN 1 then 2 ELSE 3 END
WHERE rank IN (1,2);

自己去试的时候发现
UPDATE primes SET prime = 2 WHERE rank = 1;
UPDATE primes SET prime = 3 WHERE rank = 2;
COMMIT;
可以成功,但是
UPDATE primes SET prime = 2 WHERE prime = 3;
UPDATE primes SET prime = 3 WHERE prime = 2;
COMMIT;
这样发现不行,好奇怪,先mark,有空再查
分享到:
评论

相关推荐

    jquery_defered对象

    介绍jquery中deferred来实现异步编程,以及它的使用

    深入解析oracle的回滚段

    3. **DEFERED回滚段**:在表空间离线时自动创建,上线时自动删除,用于处理离线期间的回滚信息。 从9i版本开始,Oracle引入了自动管理回滚段(Automatic Rollback Segmentation),DBA不再需要手动创建、修改或删除...

    oracle数据库回滚段专题解析

    ### Oracle数据库回滚段专题解析 #### 回滚段概述 在Oracle数据库中,回滚段(Rollback Segment)是一种非常重要的数据结构,主要用于存储数据修改前的状态信息,即所谓的“前影像”。这一机制对于确保数据库的...

    oracle ebs 11i功能流程详解

    Oracle EBS 11i(Enterprise Business Suite)是Oracle公司推出的一款全面的企业级资源规划(ERP)解决方案,它集成了财务、供应链管理、制造、项目管理、人力资源等多个业务领域的功能,为企业提供了一站式的信息化...

    oracle回滚段问题

    3. DEFERED回滚段:在表空间离线时自动创建,上线时自动删除,用于离线期间的回滚信息。 回滚段的使用: - 分配:Oracle自动为事务分配回滚段,通常选择最少事务的回滚段。也可以通过SET TRANSACTION命令指定使用...

    oracle ebs 11i功能流程祥解

    Oracle EBS 11i(Enterprise Business Suite)是Oracle公司推出的一款全面的企业资源规划(ERP)解决方案,旨在帮助企业实现业务流程的自动化与优化。本文档深入解析了Oracle EBS 11i的功能流程,尤其聚焦于财务(FIN)...

    ORACLE EBS

    Oracle EBS,全称为Oracle E-Business Suite,是Oracle公司推出的一款全面的、集成的企业资源规划(ERP)解决方案。它提供了广泛的功能,包括财务管理、供应链管理、人力资源管理和客户服务等,适用于各种规模的企业...

    defered render

    ### 延迟渲染技术详解 #### 一、引言 随着现代图形硬件的灵活性与速度的不断提升,一些以往被认为无法实现的非交互式技术现在得以在实时应用中发挥其效用。其中,延迟渲染(Deferred Shading)作为一种重要的渲染...

    18.Twisted的Defered.zip

    网络爬虫基础 网络爬虫的概述和原理 ...Python爬虫库的介绍 数据抓取与解析 ...JSON和XML数据的解析 动态网页爬取技术(如使用Selenium等) 反爬机制与应对策略 ...反爬机制的类型和常见手段 User-Agent设置和IP代理的应用 ...

    game-promises-and-defered:小动画,有点过分

    标题中的"game-promises-and-defered"可能是一个使用Promise和 Deferred实现的小游戏项目,通过游戏的形式帮助开发者理解这些概念。 Promise是ES6引入的特性,它代表一个异步操作的最终完成或失败,以及其对应的值...

    回滚段管理

    撤销段根据用途分为SYSTEM、Non-SYSTEM和DEFERED三种类型: - **SYSTEM**:用于SYSTEM表空间中的对象。 - **Non-SYSTEM**:用于除SYSTEM表空间外的对象,支持自动和手动管理模式。 - *自动模式*:需要UNDO表空间...

    详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】

    JavaScript中的AJAX(异步JavaScript和XML)是一种关键的前端技术,用于创建动态和交互式的网页应用程序,无需页面刷新即可更新内容。它提高了用户体验,减少了服务器负载,并优化了带宽利用。 ...

    实例解析Python的Twisted框架中Deferred对象的用法

    Deferred对象结构 Deferred由一系列成对的回调链组成,每一对都包含一个用于处理成功的回调(callbacks)和一个用于处理错误的回调(errbacks)。初始状态下,deffereds将由两个空回调链组成。在向其中添加回调时将...

    深入解析jQuery中Deferred的deferred.promise()方法

    在JavaScript的世界里,jQuery库提供了一种强大的异步编程机制,即Deferred对象。 Deferred对象的主要目的是简化异步操作的管理,特别是在处理多个异步任务时。`deferred.promise()`是 Deferred 对象的一个重要方法...

    dojo-release-1.4.3

    Dojo使用延迟加载(Defered Loading)策略,只在需要时加载模块,这大大减少了页面的初始化时间。同时,Dojo的AMD(Asynchronous Module Definition)模块定义方式,促进了模块间的依赖管理,使得大型项目的构建更为...

    数据库标准参数模板.doc

    9. `defered_segment_creation`:延迟段创建,设置为"false"表示在表被插入时立即创建段。 10. `enable_ddl_logging`:开启DDL日志,有助于故障恢复。 11. `event`:定义事件跟踪,例如,用于跟踪特定错误或性能问题...

    SCO5.0.7安装说明.pdf

    9. **网络环境设置**:自动检测网络卡,设置TCP/IP选项,可选择Defered IPX/SPX设置,配置鼠标与Email system(推荐Sendmail)。 10. **输入管理员密码**:设置root用户密码。 11. **开始安装**:确认后,安装过程...

    Standalone-Deferred:jQuery.Deferred的独立实现

    这个项目试图尽可能地模仿$ .Defered,但是如果有差异,我也不会感到惊讶。 兼容性 需要Array.prototype.forEach。 测验 该项目应该具有用编写的相当完整的测试报道,但是如果您发现任何不足之处,请随时通知我。 ...

    jQuery的移动

    1. **延迟绑定(Defered Enhance)**:为了避免页面加载时不必要的资源消耗,可以使用 `data-enhance="false"` 阻止元素的自动增强,然后在适当的时候手动调用 `$.mobile enhanceWithin()`。 2. **减少 DOM 元素**...

    hashmap:提供快速的HashMap,LinkedHashMap和高阶函数到任何可迭代的函数,例如Array,Map或Set。 经过测试和基准测试的问题和PR

    HashMap和LinkedHashMap 描述 该项目提供了可在Node.js和浏览器上运行的HashMap和LinkedHashMap类。 它们都是像一样的简化实现 它使用改进的算法生成哈希。 这样可确保在所有铲斗上尽可能广泛地散布。...

Global site tag (gtag.js) - Google Analytics