jedziemy:Błąd blokady mysql lub błąd?
mysql> LOCK TABLES radcheck WRITE;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM radcheck WHERE id NOT IN (
-> SELECT id FROM (
-> SELECT id FROM radcheck WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1
-> ) AS c
->);
ERROR 1100 (HY000): Table 'radcheck' was not locked with LOCK TABLES
WTF?
EDIT
SET AUTOCOMMIT = 0
-> ;
Query OK, 0 rows affected (0.00 sec)
mysql> LOCK TABLES radcheck WRITE;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM radcheck WHERE id NOT IN (SELECT id FROM radcheck WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1);
ERROR 1100 (HY000): Table 'radcheck' was not locked with LOCK TABLES
mysql> LOCK TABLES radcheck READ;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM radcheck WHERE id NOT IN (SELECT id FROM radcheck WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1);
ERROR 1100 (HY000): Table 'radcheck' was not locked with LOCK TABLES
pd: Kwerenda działa dobrze, jeśli nie zablokować tabeli. pd: To jest tylko przykładowe uproszczenie pytania .. w prawdziwym życiu jest DELETE ...
sprawdzić moją odpowiedź. musisz podać alias do wszystkich tabel. i trzeba również zablokować tabelę podzapytania za pomocą tego aliasu –