做一个进销存的系统,当入(出)库输入修改删除时,库存做相应的加减,我的方法是在前台存盘事务中加上update库存表的SQL语句,在任何可能出错的地方都加了rollback;但是在60台工作站的环境下,经常会出现入(出)库单和库存表数据不一致的情况,在我的单机环境下测试则没有任何问题(无论怎么修改数据),不知道是否用触发器的方式好一些?请各位提供意见,谢谢。

解决方案 »

  1.   

    对库存表加锁
    SELECT ... FROM TBNAME WHERE ... FOR UPDATE;
    UPDATE ...;
    COMMIT;
      

  2.   

    对库存表加锁
    SELECT ... FROM TBNAME WHERE ... FOR UPDATE;
    UPDATE ...;
    COMMIT;请问上面的FOR UPDATE是否自动将记录加锁,UPDATE后是否会自动解锁,另外这种方式加锁后别人要读取或更新是否会自动排队?请指点。
      

  3.   

    将事务的隔离级别改为 serializable isolation level