在数据库中增加一个表,用于数据的锁定,当操作其他表中的数据时首先需要在LOCK表中添加一条记录,用于锁定这条记录,当别人再想操作的时候就会检查到在LOCK表中这条记录已经被锁定,就不允许其他用户操作!操作完成后,必须把这条加锁记录删除掉!

解决方案 »

  1.   

    有这样的问题:A读X表X行的数据,B在A读完后修改了该行数据,这时A的显示和数据库保存的值不一样,如果A再保存一次,B的修改就被冲掉了
      

  2.   

    至少你做一个程序是要考虑的.
    比如在oracle中使用select * from table for update的方法锁数据。或者是在数据库更新操作时核对数据有无变更.你这样做了,起码做到使另外一个程序不能改你的记录。
    至于另外那个程序因为你的程序改了数据而出错,那就不是你管的了,万一人家已经考虑到了呢。
      

  3.   

    我用的数据库是Sybase;
    说得具体点就是:
    系统A,系统B,表C,D行;
    A读了C行,此时,B也读了C行,读出来的最大值数据肯定就是一样的,都再对最大值加一,再插到
    表C里,那么,插进去的值肯定都是一样的。数据库事务我不懂,但是,我觉得A读了C行,此时,B也读了C行,数据库事务总不会不让B读C行吧?
    既然读了,数据肯定就会重复;to:myhotsun(科科)
       你说的是用程序锁定还是写存储过程?如果是前者的话那就得让另一个系统(其他公司的)也该程序了;怎么写存储过程我还不是很清楚,数据库不是我得强项,这是我的疑问,敲完了这段话我再google去:)