给定一个像这样的表,其中x和y具有唯一约束。已订购SQL更新
id,x,y 1, 1,1 2, 1,2 3, 2,3 4, 3,5 ..
我想用UPDATE语句将一组行中的值x和y增加一个固定量。假设我将它们都增加了1,看起来UPDATE按照id顺序,并且在用1 2更新行之后给我一个错误,因为它碰到了下一行,2 3,它还没有更新到3,4然而。
谷歌搜索,我无法找到强制更新使用订单的方法。要做到这一点就足够了我的应用程序。我也确信整个更新之后这个集合是一致的。
任何解决方案?有什么方法可以强制订单进入更新或以任何方式推迟约束检查,直到完成?
这是为了Django应用程序,它意味着与所有支持的数据库兼容。我知道一些数据库具有原子事务并且这个问题不会发生,有些功能可以避免这个问题,但我需要一个严格标准的SQL解决方案。
哪个DBMS? PostgreSQL的?甲骨文? DB2? – 2012-04-16 17:07:26
欢迎来到StackOverflow。当问一个SQL问题时,如果你还为你正在使用的数据库添加一个标签,它会有所帮助。它们之间的语法和功能有所不同,如果你这样做,你会更快得到一个有用的答案。你现在可以编辑你的问题来添加它。谢谢。 :) – 2012-04-16 17:09:29
正如我在obs中所说的,这是为了一个Django应用程序,它意味着与所有支持的数据库一起使用,所以通用解决方案更好。我正在开发使用SQLite进行测试,但是从'a_horse_with_no_name'给出的答案我认为这个问题不会发生在Oracle中。 – 2012-04-16 17:46:09