提醒是只要返回0或1就可以了....
这个表只许一个用户进程操作.......
 dingzhaofeng(丁兆丰)如何建

解决方案 »

  1.   

    GET_LOCK(str,timeout) 
    尝试获得一个由字符串 str 给定名字的锁定与一个 timeout 秒的超时。如果锁定被获得成功,返回 1,如果尝试超时,返回 0,或者一个错误发生(比如内存溢出或线程被 mysqladmin kill 杀死),返回NULL。当你执行 RELEASE_LOCK()、执行一个新的 GET_LOCK(),或线程终止时,一个锁定被释放。这个函数可以被用于执行应用程序锁定或模拟记录锁定。它会阻塞其它的客户端用同样的名字的锁定请求;遵从一个给定锁定字符串名的客户端可以使用这个字符串来执行子协作建议的锁定: 
    mysql> SELECT GET_LOCK("lock1",10);
            -> 1
    mysql> SELECT IS_FREE_LOCK("lock2");
            -> 1
    mysql> SELECT GET_LOCK("lock2",10);
            -> 1
    mysql> SELECT RELEASE_LOCK("lock2");
            -> 1
    mysql> SELECT RELEASE_LOCK("lock1");
            -> NULL注意,第二个 RELEASE_LOCK() 调用返回 NULL 是因为 "lock1" 锁定被第二个 GET_LOCK() 调用自动地释放了。 RELEASE_LOCK(str) 
    释放由字符串 str 命名的通过 GET_LOCK() 获得的锁定。如果锁定被释放,返回 1;如果锁定并没有被当前线程锁定(在这种情况下,锁定不会被释放),返回 0;如果命名的锁定不存在,返回 NULL。如果锁定从来就没有通过调用一个 GET_LOCK() 获得,或已被释放了,那么该锁定将不存在。 DO 语句通常与 RELEASE_LOCK() 一起使用。查看章节 6.4.10 DO 句法。