Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/12/2011, 07:03
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: 17 años
Puntos: 2658
Respuesta: Duda con ON DUPLICATE KEY UPDATE

SI el valor ya lo tienes en el momento de crear el UPDATE, simplemente haces el UPDATE condicionado en el WHERE. Supongo que eso lo sabes hacer.
Ahora bien, sin quieres enviar una sentencia tal que si existe, lo actualice, y si no exite lo inserte, para eso es REPLACE, que tiene la misma sintaxis del INSERT, pero hay algunas consideraciones:

- REPLACE reemplaza todo el registro, y no solo algunas columnas, lo que implica que para que funcione debes enviar todos los valores de los campos.

- Si reemplaza un registro, y no envías todos los datos, aquellas columnas con datos que no envíes serán llenadas con NULL, con lo que los datos existentes se perderán.

- REPLACE no genera warnings, por lo que no indicará si encontró o no algo ya existente. Simplemente lo remplazará.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)