![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка: "<Table> was not locked with LOCK TABLES".
Aldor © (2004-03-08 16:44:00)Сервер БД - MySQL.
Выполняются следующие запросы:
LOCK TABLES <Table1> LOW_PRIORITY WRITE
INSERT INTO <Table2> SELECT <some fields> FROM <Table1>
На попытке выполнить последний запрос вылетает вышеописанная ошибка:
Error 1100: Table <Table2> was not locked with LOCK TABLES
Если заблокировать обе таблицы, то все в порядке. Почему нужно блокировать обе таблицы?
Nikolay M. (2004-03-08 21:11:00) [1]http://www.mysql.com/doc/
в частности,
http://www.mysql.com/doc/ru/LOCK_TABLES.html
правда, я не в курсе, насколько перевод поспевает за оригиналом, раньше по первой ссылке выдавался англоязычный текст. Но вроде о 4.0.2 по-русски написано.
Aldor (2004-03-08 19:23:00) [2]Спасибо, у меня мануал MySQL 3.23. Там я подобного не нашел. Не подскажите, из какого мануала взяли?
Nikolay M. (2004-03-08 17:43:00) [3]Из мануала:
При использовании команды LOCK TABLES необходимо блокировать все таблицы, которые предполагается использовать в последующих запросах, употребляя при этом те же самые псевдонимы, которые будут в запросах! Если таблица упоминается в запросе несколько раз (с псевдонимами), необходимо заблокировать каждый псевдоним!
Поскольку блокировки - это некая эмуляция транзакций, логично, что нужно блокировать все таблицы, над которыми производятся какие-то операции.