最普通的办法是在要修改数据时将数据表以独占方式打开,所谓“独占”就是使得数据只能自己使用,而别人不能使用,既不能修改,也不能查看。独占打开表的命令是在 use 命令中加 exclusive 子句,比如:use rsda exclusive这样就不会出现两个人同时修改一个数据的情况了。

解决方案 »

  1.   

    如果为了改一条记录,而去锁住整个表,这样的效率也不怎么样。为此有了记录锁 rlock() ,该函数的格式为:RLOCK([工作区|别名] 
    | [记录号列表, 工作区|别名])比如:rlock('1,3,5','rsda')可将记录号为1、3、5的记录锁住。如果省略记录号则锁住指定工作区(或别名)的当前记录,如省略工作区(或别名),则锁定当前工作区的当前记录。如使用了记录号列表,必须有工作区(或别名),如只指定一个记录(不是列表),可没有工作区(或别名),且用数值指定,比如:rlock(5)注意
     如果要锁住多条记录,必须设置 set multilock on,如果是 set multilock off,则只有最后一条加锁的记录被锁住。 有了这个函数就可以锁住一条或多条记录,这样就不至于为了改一条记录,而使得其它所有记录都不能被别人修改。在许多网络软件中,都有多人同时向一个表里输入数据的情况,这就要求软件一定不能经常出现由一个人将整个表锁住的情况。另外有一个函数 lock() ,它与 rlock() 的功能是完全一样的。