3

例如,使用此脚本;

mysql_query("LOCK TABLES mytest WRITE;");

for ($i = 1; $i < 100000; ++$i) {
    mysql_query("INSERT INTO mytest (Value, Value2, Value3) VALUES ($i, $i, $i);");
}

mysql_query("UNLOCK TABLES;");

如果脚本超时/用户计算机崩溃/在UNLOCK TABLES到达阶段之前发生什么?mysql会“注意到”请求锁的客户端已断开连接并适当地释放锁,还是会无限期地卡住?

4

1 回答 1

8

根据MySQL文档:

如果客户端会话的连接终止,无论是正常还是异常,服务器都会隐式释放会话持有的所有表锁(事务性和非事务性)。如果客户端重新连接,锁将不再有效。

于 2012-04-21T19:07:48.377 回答