Mysql-表锁错误

Mysql-表锁错误,mysql,error-handling,table-lock,Mysql,Error Handling,Table Lock,我遇到一些表锁定问题。我已在事务中锁定了一定数量的表锁定表t1读取、t2读取、t3读取、t4读取、t5读取、t6读取、t7读取 读取时可以,但当我尝试写入/更新此表时,会显示错误表't1'被读取锁锁定,无法更新 但我从未锁定表进行写入,我必须使用更新的值写入这些表 我的目标是我需要选择和更新行,而其他人在流程完成之前不应该与上面的表交互 非常感谢您的解决方案 来自: 锁获取规则 要在当前会话中获取表锁,请使用LOCK TABLES语句。以下锁类型可用: 读取[本地]锁: 持有锁的会话可以读取(但

我遇到一些表锁定问题。我已在事务中锁定了一定数量的表<代码>锁定表t1读取、t2读取、t3读取、t4读取、t5读取、t6读取、t7读取

读取时可以,但当我尝试写入/更新此表时,会显示错误表't1'被读取锁锁定,无法更新

但我从未锁定表进行写入,我必须使用更新的值写入这些表

我的目标是我需要选择和更新行,而其他人在流程完成之前不应该与上面的表交互

非常感谢您的解决方案

来自:

锁获取规则 要在当前会话中获取表锁,请使用LOCK TABLES语句。以下锁类型可用:

读取[本地]锁:

持有锁的会话可以读取(但不能写入)表

其他会话也可以选择

MariaDB [test]> unlock tables;
Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> lock table super1 write;
Query OK, 0 rows affected (0.00 sec)
其他会话无法选择

MariaDB [test]> insert into super1 VALUE(10);
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> insert into super1 VALUE(11);
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> unlock tables;
Query OK, 0 rows affected (0.00 sec)
RTFM:
持有锁的会话可以读取表(但不能写入表)。
MariaDB [test]> insert into super1 VALUE(10);
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> insert into super1 VALUE(11);
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> unlock tables;
Query OK, 0 rows affected (0.00 sec)