有一张客户表customer,此表里有1000个客户数据。
有N个服务人员对这1000客户进行业务操作。
当A服务人员对a_cu客户进行业务操作时,那么其它的服务人员是不能对a_cu客户进行业务操作的,也就是其它服服人员(B)必须查询到a_cu客户下一个客户(b_cu),
然后依此类推。这里就成在一个数据并发的问题!
先谢谢各位大师。
有N个服务人员对这1000客户进行业务操作。
当A服务人员对a_cu客户进行业务操作时,那么其它的服务人员是不能对a_cu客户进行业务操作的,也就是其它服服人员(B)必须查询到a_cu客户下一个客户(b_cu),
然后依此类推。这里就成在一个数据并发的问题!
先谢谢各位大师。
按你说的,还是会出现并发的问题。
1,查询数据,
2,修改(update)状态值.
2,业务操作完成,再改回状态值。
如果在查询时出现并发,怎么办? 需求要求只要一个客户被查询出来,就不能被其它服务人员查询出来后进行业务操作。
还有问题就是发生意外又怎么办?
如查询出来后,也修改状态值。然后断电,断网,死机。这样就会出现此次的查询出来的客户,就不会被查询出来,就不会对其进行业务操作。
update 的时候加where语句
1、通过oracle本身提供的select...for update;
2、增加状态字段,并且将状态查询调整设计为原子操作,即直接update查到的状态
允许的记录的状态字段,而非先查询一次下一条语句再更新;
3、增加一个调度,所有操作先向调度程序申请,由调度程序分配,这个方法虽然麻
烦点,但可完全实现你的需求。
2、增加一个状态字段更不可取。会有一查,一改的操作。谁能保证一查时不并发呢?
看来,高手是不来csdn啦。