Esto funciona en una mesa donde doc_id
es la clave principal:MySQL Error de actualización 1093
select count(*)+1 from doctor where
exp > (select exp from doctor where doc_id='001');
+------------+
| count(*)+1 |
+------------+
| 2 |
+------------+
Pero cuando estoy usando la misma consulta de selección para establecer un campo en la tabla, se informa del error siguiente:
update doctor set rank=
( select count(*)+1 from doctor where
exp > (select exp from doctor where doc_id='001')
) where doc_id='001';
ERROR 1093 (HY000): You can't specify target table 'doctor' for update
in FROM clause
No entiendo de qué referencia de tabla de destino está hablando. ¿Alguien puede explicar?
aunque me hace ¿Se supone que esa restricción lo protege de algo que la solución revela o es un problema técnico? – chustar