多个用户同时对同一张表进行查询、更新 有一张表T,是预先写入一些有效数据;每个用户登录系统操作一个交易流程时,都要从T表中获取个有效记录,然后将该记录注销掉,证明该条记录已被使用; 表T ID stat(状态)
用户要操作一个交易流程 从T表中取一个最小的有效ID select min(id) from t where stat=1 然后用获取的id做其他数据交易 最后将T表的该条记录注销 update T set stat=0 where id='0'
现在就是有可能多个用户同时操作,是不是会取到同一个MIN(id) 有什么方法可以避免么?
另外我几个帖子都没人回答,都没法结贴啊 杯具啊
------解决方案-------------------- 不知道Oracle 里有没有时间戳,处理这种并发最好的方式用时间戳,锁什么的都太强制性了。
------解决方案-------------------- 关注时间戳的应用
------解决方案-------------------- select min(id) from t where stat=1 for update!锁住这条数据
------解决方案--------------------