MySQL get_lock('test_lock', 0) 总是 returns 1

MySQL get_lock('test_lock', 0) always returns 1

据我了解,get_lock('test_lock', 0) 在第一次调用后应该 return 1 或成功。第二次调用应该 return 0。在调用 release_lock('test_lock') 之后,它将再次 return 1。那正确吗?我只是使用 MySQL Workbench 到 运行 命令并每次返回 1。我希望在我的应用程序中使用这个锁作为信号量。

一旦您成功调用 get_lock,您的会话将拥有它,因此来自同一会话的后续调用也将成功(并且 return 1)。如果您 运行 get_lock 然后打开 另一个 MySQL Workbench 会话(例如,通过启动应用程序的另一个实例)并尝试获得相同的锁,它将失败(并且return 0)。