Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/05/2013, 05:40
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: Reemplazar campo de una tabla

Francamente...

Mira: Toda actualización de un dato sin eliminar el registro es siempre UPDATE.
Siempre.

REPLACE, como bien lo dice su nombre reemplaza o inserta el registro completo (tengo la impresión de que vienes de trabajar en dBASE), y tiene una sintaxis idéntica a INSERT, con la salvedad de que si la PK que se va a insertar ya existe, reemplaza todos los valores, haciendo un DELETE previo del viejo e insertando el nuevo.
Pero como sólo estás reemplazando un único valor, no clave, el resto de los valores entraría como NULL... con todas las consecuencias nefastas imaginables.
REPLACE no es funcional si esa tabla es FK de otras tablas, ya que el DELETE no podría operar si existen registros dependientes de ése en otras tablas. Simple restricción de integridad referencial.

En otras palabras: UPDATE.

Este problema es demasiado básico, por lo que tengo la impresión de que no tienes práctica suficiente en SQL. Te recomiendo enfáticamente ir al manual cuando te aparezcan problemas como este. Ahorrarás tiempo.
Y no te ofusques por lo que digo: Nosotros tenemos años haciendo esto, y sin embargo seguimos consultando al manual para muchas cosas... Nadie sabe de memoria todo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)