gpt4 book ai didi

php - 锁定表以读取 MYSQL

转载 作者:搜寻专家 更新时间:2023-10-31 22:15:56 24 4
gpt4 key购买 nike

我想锁定一个特定的表以供读取,但是当我查询时

   mysql_query("LOCK TABLES unique_voucher READ");

进入数据库后,它只允许我读取这个表,而不能读取其他表。

是否可以只锁定这个特定的表,并且在某个进程完成之前不允许用户查询这个表?

(这是因为我拿着一个计数器,如果很多用户同时连接,他们可能会得到不明确的数字,所以在一个用户准备好处理一次之前,我想锁定一个表的读数)

最佳答案

如果您为所有用户共享相同的数据库连接,一种可能的解决方案是锁定所有其他表,除了您想要的表。锁定的表将可用。

来自 http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html :

“需要锁的 session 必须在单个 LOCK TABLES 语句中获取它需要的所有锁。当持有由此获得的锁时, session 只能访问锁定的表。例如, 在以下语句序列中,尝试访问 t2 时发生错误,因为它未在 LOCK TABLES 语句中锁定:"

mysql> LOCK TABLES t1 READ;
mysql> SELECT COUNT(*) FROM t1;
+----------+
| COUNT(*) |
+----------+
| 3 |
+----------+
mysql> SELECT COUNT(*) FROM t2;
ERROR 1100 (HY000): Table 't2' was not locked with LOCK TABLES

关于php - 锁定表以读取 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com