Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 오류 오류 1099(HY000):테이블이 READ 잠금으로 잠겨 있어 업데이트할 수 없습니다.


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)