日期:2014-05-18  浏览次数:20457 次

高分请教一个入门级的问题。
我设计了这样一个存储过程,一次从一个表中提取第一条未处理的记录进行处理,处理完后删除这条记录(或标记这条记录已经被处理),然后再从表中选取第一条未处理的记录,依次循环。问题是,这个存储过程可能会被多个程序调用,而一条记录只能被处理一次。有什么办法让一个过程选取一条记录后不会被别的过程重复选取?

------解决方案--------------------
加标记,区分该记录是未被处理,正在处理还是已经处理完毕.
------解决方案--------------------
开事务
先把记录标志成已经处理
再处理,处理失败回滚事务
成功则提交事务

------解决方案--------------------
用事务处理吧.就是干这个使的.
------解决方案--------------------
不明白为什么要用事务!!!
设如果表中有数字列(假设处理是为数字列加1)~标签列(假设0和1~1为已处理)~ID列
那么是不是只要找出某ID和(and)标签列为0的处理~~为数字列加1~~标签列改为1~~
不满足ID的或不满足标签的都不会再处理!!为什么加事务???
------解决方案--------------------
认同Haiwer(海阔天空)的观点,在存储过程中不能进行什么样的操作建议都加事务,已保证数据的一致性和完整性。
至于搂主的问题,可以通过加标志来处理