首页 MySql 用php锁定mysql表

用php锁定mysql表

脚本1.$query_ = lock tables test1 as test11 write; mysql_query($query); $query_ = select * from test11; sleep(20); $query_ = unlock tables; mysql_query($query_); 脚本2.$query_ =

脚本1.

$query_ = "lock tables test1 as test11 write";
mysql_query($query);
$query_ = "select * from test11";
sleep(20);
$query_ = "unlock tables";
mysql_query($query_);

脚本2.

$query_ = "select * from test1";
$result = mysql_query($query_);

问题是如果我在运行第一个脚本时运行第二个脚本.表未锁定.我可以从中读取任何数据.

我需要它被锁定并返回错误.

如何使这项工作?

最佳答案
你被读取用$query_ =“锁定表test1作为test11读取”来锁定表; – 这意味着其他查询仍然可以读取它而没有任何问题(相关link – 向下滚动到关于锁类型的部分) :

有关读锁类型的信息:

>持有锁的会话可以读取表(但不能写入).
>多个会话可以同时获取表的READ锁.
>其他会话可以在不明确获取READ锁的情况下读取表.

如果你想停止其他任何事情,那么你需要使用写锁,如下所示:

$query_ = "lock tables test1 as test11 write";

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/shujuku/mysql/20210124/16956.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部