gpt4 book ai didi

php - 表 [tablename] 未锁定

转载 作者:行者123 更新时间:2023-11-29 01:03:02 27 4
gpt4 key购买 nike

我正在编写一个锁定表的 MySQL 查询:

"LOCK TABLE table_1 WRITE"

之后我执行了一些函数,在其中一个函数中,我在另一个我没有锁定的表上执行另一个查询:

"SELECT * FROM completely_different_table_2"

然后我收到以下错误消息作为结果:

Table 'completely_different_table_2' was not locked with LOCKED TABLES 

的确,MySql 告诉我表没有被锁定是正确的。但为什么它会抛出错误?有人知道我该如何解决这个问题吗?

提前致谢。

最佳答案

您必须锁定要使用的每个表,直到LOCK 被释放。您可以只给 completely_different_table_2 一个 READ LOCK,它允许其他进程在锁定时读取此表:

LOCK TABLES table_1 WRITE, completely_different_table_2 READ;

PS:MySQL这样做是有原因的。如果您请求 LOCK,您希望卡住数据的一致状态。如果您从 LOCK 中的 completely_different_table_2 读取数据,您写入 table_1 的数据将以某种方式依赖于另一个表。因此,您不希望任何人在您的 LOCK 期间更改此表并为第二个表请求 READ LOCK。如果您写入 table_1 的数据不依赖于其他表,则在释放 LOCK 之前不要查询它。

关于php - 表 [tablename] 未锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27720093/

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