我遇到了表锁定的一些问题。我在交易中锁定了一定数量的表格。 LOCK TABLES t1 READ, t2 READ, t3 READ, t4 READ,t5 READ,t6 READ,t7 READ;
虽然读它没关系,但是当我试图写/更新到这个表时,它显示错误表't1'被锁定并且无法更新
但是我从来没有锁定表格进行写入,我必须使用更新的值写入这些表格。
我的目标是我需要选择并且我需要更新行,而其他人不应该与上面的表交互,直到流程结束。
非常感谢您的解决方案!
答案 0 :(得分:2)
答案 1 :(得分:0)
MariaDB [test]> lock table super1 read;
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> select * from super1;
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 5 |
| 6 |
| 7 |
+----+
6 rows in set (0.00 sec)
MariaDB [test]> insert into super1 VALUE(10);
ERROR 1099 (HY000): Table 'super1' was locked with a READ lock and can't be updted
其他会话也可以选择
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)