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)
广告