2012-2-18 13:16:43
这个是实际业务开发中的例子
工作流程:订单审核-->审核后的订单加入生产计划(生产计划中不能包括未审核订单)
并发可能导致的错误结果
①订单A, 通过审核
②查看通过审核的订单列表,其中包括了订单A
③选中订单A,准备加入生产计划
④生产计划保存前, 订单A在另一地点被反审核
⑤生产计划保存成功, 包括了一个未审核的订单A
解决办法:使用dw时,要把相关字段同时列为可更新字段(updateable), WHERE子句要包括所有可更新字段
使用内嵌SQL的update时, where 子句要增加关联字段为条件