Поиск по сайту:

Ошибка MySQL ОШИБКА 1099 (HY000): таблица заблокирована с помощью блокировки ЧТЕНИЯ и не может быть обновлена.


Чтобы избавиться от запроса LOCK TABLES, вам нужно использовать UNLOCK TABLES.

Создадим таблицу:

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

Вставьте несколько записей в таблицу с помощью команды вставки:

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

Если вы используете РАЗБЛОКИРОВАТЬ ТАБЛИЦЫ, вы можете вставлять записи в ту же таблицу:

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

Вставьте несколько записей в таблицу с помощью команды вставки:

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)

Статьи по данной тематике: