Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

erro ou bug de bloqueio do mysql?


quando você usa tabelas de bloqueio, você precisa bloquear todas as tabelas em sua consulta. Quando você usa uma subconsulta, ela cria uma tabela. e você não está bloqueando. por causa disso você está recebendo erro.

referência:http://dev.mysql.com/doc /refman/5.0/en/lock-tables.html

dar um alias para a tabela interna

amostra testada:
lock tables products as p1 write, products as p2 write ;
select product_id  from products as p1
where product_id  not in ( 
select product_id from products p2 where product_id in (1,2)
) 

E provavelmente você precisa disso:
lock tables radcheck as r1 write, radcheck as r2 write ;

 SELECT * FROM radcheck r1 WHERE id NOT IN (
SELECT id FROM (
  SELECT id FROM radcheck r2 WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1) AS c
 );