不知道你用的是什么数据库,据我所知,数据库是有锁的.
   
  比如某个用户正在修改一个表时,这时数据库就会锁住不能让另外一个人修改它.等到修改数据库的这个用户手动和自动commit后,数据库才可以被另外一个人修改.
对所有DML语句数据库都会上锁.

解决方案 »

  1.   

    在MySQL中,一条单独的insert/delete/update操作不需要lock(系统自动保证数据完整性),如果有两个用户同时insert,系统肯定会等到其中一个完成了,再执行另一个,不会互相干扰但如果某一功能是由多条这类操作共同完成的,为确保数据完整,必须lock
    例如,一个社区系统,将用户的注册信息分存到两个table,users1保存常规信息,users2保存隐私信息,但执行用户注册时,就需要两次insert,这时就必须用lock:lock tables users1 write, users2 write
    insert into users1 ...
    insert into users2 ...
    unlock tables否则,如果 insert into users1 成功而 insert into users2 失败会如何?
    注册成功“半个人”?