Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/09/2013, 08:27
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: update con subconsulta

Cita:
nunca he echo una subconsulta en update y crei que la sintaxis era igual que en los select
Primero, no creas nada que no te asegures previamente en el manual de referencia. Para eso existen.
Segundo: No es opcional. MySQL no admite hacer un UPDATE sobre la misma tabla que haces el SELECT. Simplemente no te dejará, sin importar de qué forma lo intentes. es una restricción del DBMS que existe por seguridad de procesos.
Digamoslo así: Es para evitar cortar la rama en la que estás parado.
Si estuvieras actualizando el mismo campo que usas para buscar el registro, ¿en qué estado está? ¿Cuál es el valor al momento de ejecutarse? ¿Contiene el valor nuevo, o el que tenía?
Si lo piensas, es una situación insegura.
Por esa misma razón, no se perite tampoco borrar y consultar la misma tabla en la misma sentencia.

Existen algunos DBMS que si tienen implementado esa posibilidad, pero lo hacen dentro de un proceso en que se genera un registro o tabla en memoria que contiene los cambios, al estilo de lo que en MySQL se implementa para eso con un stored procedure.
Si quieres hacerlo, te recomiendo usar SP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)