MySQL 错误 ERROR 1099 (HY000): 表被加上了读锁,无法更新


要消除 LOCK TABLES 查询,您需要使用 UNLOCK TABLES。

让我们创建一个表 -

mysql> create table demo6
−> (
−> country_name varchar(100
−> )
−> );
Query OK, 0 rows affected (1.51 sec)

使用 insert 命令在表中插入一些记录 -

mysql> insert into demo6 values('US');
Query OK, 1 row affected (0.11 sec)

mysql> insert into demo6 values('UK');
Query OK, 1 row affected (0.08 sec)

mysql> insert into demo6 values('AUS');
Query OK, 1 row affected (0.11 sec)

使用 select 语句显示表中的记录 -

mysql> select *from demo6;

这将产生以下输出 -

+--------------+
| country_name |
+--------------+
| US           |
| UK           |
| AUS          |
+--------------+
3 rows in set (0.00 sec)

这里,我只对上述表加上了读取操作的锁。以下是查询 -

mysql> lock tables demo6 read;
Query OK, 0 rows affected (0.00 sec)

当您尝试在上述表中插入数据时,会出现以下错误 -

mysql> insert into demo6 values('IND');
ERROR 1099 (HY000): Table 'demo6' was locked with a READ lock and can't be updated

如果您使用 UNLOCK TABLES,则可以在同一个表中插入记录 -

mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)

使用 insert 命令在表中插入一些记录 -

mysql> insert into demo6 values('IND');
Query OK, 1 row affected (0.09 sec)

使用 select 语句显示表中的记录 -

mysql> select *from demo6;

这将产生以下输出 -

+--------------+
| country_name |
+--------------+
| US           |
| UK           |
| AUS          |
| IND          |
+--------------+
4 rows in set (0.00 sec)

更新于: 2020-11-19

601 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告