我正在尝试做一个简单的锁,以防止任何其他请求读取或写入单个表。我的代码在 phpmyadmin 中输入并执行后的结果:
LOCK TABLES mytable WRITE;# MySQL returned an empty result set (i.e. zero rows).
INSERT INTO mytable (field1, field2) VALUES ('21', '123123');# 1 row(s) affected.
锁不起作用,插入物起作用了。显然工作不正常......我做错了什么?我一直在倾注 oer MySQL 文档,这似乎是他们说要做的......
最佳答案
当您的 session 在表上工作时,锁是为了防止其他 session 访问该表。如果在表上加锁也会将您自己的代码锁在外面,那么加锁就没有意义了。
你必须用两个连接来测试它。一个连接进行锁定,另一个连接尝试进行插入。
在 phpmyadmin 中完成这一切是通过一个连接完成的,这不是一个有效的测试。
关于MySQL锁定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9756278/