Foros del Web » Programando para Internet » PHP »

update con 3 claves

Estas en el tema de update con 3 claves en el foro de PHP en Foros del Web. Hola Tengo un pequeño problema con una sentencia update de sql, y es que no se muy bien como hacerla. El caso es que la ...
  #1 (permalink)  
Antiguo 21/09/2008, 09:45
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 10 meses
Puntos: 0
update con 3 claves

Hola

Tengo un pequeño problema con una sentencia update de sql, y es que no se muy bien como hacerla. El caso es que la tabla tiene 3 claves y quiero poder modificar 2 de ellas. ¿Como podría hacerlo?

Lo he intentado de esta forma, aunque no se si es la más adecuada o no:

UPDATE tabla SET Clave1='$clave1', Clave2='$clave2' WHERE Clave1='$clave1Orig' and Clave3 in (SELECT Clave3 FROM tabla WHERE Clave3='$clave3Orig' and Clave2='$clave2Orig');

Pero me aparece este error:

#1093 - You can't specify target table 'tabla' for update in FROM clause

¿Me podeís ayudar a saber por qué me aparece este error? ¿Hay alguna otra forma de hacerlo?

Gracias, un saludo.
  #2 (permalink)  
Antiguo 21/09/2008, 10:11
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update con 3 claves

Explica mejor la función de cada una de las claves que tienes. Por qué no lo haces usando esta consulta?:

Código php:
Ver original
  1. $sql = mysql_query("UPDATE tabla SET Clave1='$clave1', Clave2='$clave2' WHERE Clave1='$clave1Orig' and Clave3 = '$clave3Orig' and Clave2='$clave2Orig'");
Saludos,
  #3 (permalink)  
Antiguo 21/09/2008, 10:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: update con 3 claves

Ya lo he hecho con esa consulta y es cuando me aparece el error que ya he puesto. ¿Qué quieres decir con que explique mejor la función de cada clave? No se, no son claves extranjeras ni nada...
  #4 (permalink)  
Antiguo 21/09/2008, 10:35
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update con 3 claves

Con la consulta que te puse no te puede salir el mismo error, pues no hay una sentencia SELECT que mande el error que te sucede con tu consulta original.

En resumen, qué es lo que desea hacer? Me refiero a que nos digas algo como "Quiero actualizar los campos Clave1 y Clave2 de los registro cuya Clave2 sea igual a $Clave2Orig y Clave3 igual a $Clave3Orig".

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:15.