【发布时间】:2011-10-24 14:01:43
【问题描述】:
我已经阅读了许多关于写入一致性的gory 详细信息,并且我了解它在简单情况下的工作原理。我不清楚的是这对嵌套子查询意味着什么。
这是一个具体的例子:
带有 PK id 和其他列 state、temp 和 date 的表。
UPDATE table SET state = DECODE(state, 'rainy', 'snowy', 'sunny', 'frosty') WHERE id IN (
SELECT id FROM (
SELECT id,state,temp from table WHERE date > 50
) WHERE (state='rainy' OR state='sunny') AND temp < 0
)
真实的事情更复杂(在最里面的查询中),但这抓住了本质。
如果我们假设 state 列不可为空,此更新是否会由于并发修改而失败(即,DECODE 函数找不到匹配的值,'rainy' 或 'sunny' 的值,因此尝试将 null 插入不可为空的列中)?
【问题讨论】: