业务场景是这样的:
TableTemp 表有一个字段Status,有两种值:100(未处理),200(已处理)。
现在有两个服务都会访问表TableTemp,一个服务负责每隔10分钟查找TableTemp表的数据,根据查找的结果进行相关逻辑运算,另一个服务 在每天0晨 将表 的名字修改为:TableTemp_(当前年夜日),并新建一个表名字叫 TableTemp,将刚才修改名字的表TableTemp__(当前年夜日)里字段Status为100的值移动到新建的表TableTemp里。
因为设计到两个服务可能同时访问TableTemp表的问题,请问该如何解决,
本来菜鸟一个,谢谢各位,就剩下10分了MySQL行业数据

解决方案 »

  1.   

    假设修改表名的为A task,进行逻辑运算的为B task
    三种case:
     (1) A 在 B 之前:A会加个表锁,B 会在A 完事后执行,因此没有问题
     (2) A 在 B 之后:A会被阻塞,B事务提交之后A才会执行
     (3) A & B 同时:参考 (1) & (2) 因此应该是没问题的,不过不敢肯定这个solution 是否是最优的,个人觉得应该会有更好的solution...需要大虾们指点了。
      

  2.   

    创建带后最的表,把200的数据拷贝进去删除tabletemp 中100 的数据