Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Update con condiciones

Estas en el tema de Update con condiciones en el foro de Mysql en Foros del Web. Hola gente, Estoy insertando unos datos el DB con la orden INSERT INTO xxx (AA,BB) VALUES (aa,bb) ON DUPLICATE KEY UPDATE b=b+1; La inserción se ...
  #1 (permalink)  
Antiguo 24/11/2011, 04:19
Avatar de Trebol-a  
Fecha de Ingreso: enero-2003
Ubicación: Cartagena, España
Mensajes: 44
Antigüedad: 21 años, 11 meses
Puntos: 0
Update con condiciones

Hola gente,

Estoy insertando unos datos el DB con la orden
INSERT INTO xxx (AA,BB) VALUES (aa,bb) ON DUPLICATE KEY UPDATE b=b+1;

La inserción se produce si no existe, pero la actualización debería hacerse si A>10 pero no sé donde situar la condición, debería ser algo como

INSERT INTO xxx (AA,BB) VALUES (aa,bb) ON DUPLICATE KEY UPDATE b=b+1 WHERE A > 10 LIMIT 1;

Pero claro, esto no lo coge. ¿Alguna sugerencia? Lo ideal sería no tener que hacer dos query para comprobar si existe/no existe ....

Saludos
  #2 (permalink)  
Antiguo 24/11/2011, 06:28
Avatar de 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: Update con condiciones

El WHERE es cláusula de SELECT, UPDATE y DELETE,pero no de INSERT.
Un iNSERT no puede ser condicional.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/11/2011, 09:42
Avatar de Trebol-a  
Fecha de Ingreso: enero-2003
Ubicación: Cartagena, España
Mensajes: 44
Antigüedad: 21 años, 11 meses
Puntos: 0
Respuesta: Update con condiciones

Ok, gracias por comentar,
y entonces la siguiente pregunta sería ¿como hago una inserción/actualización+condicionada en la misma orden?
  #4 (permalink)  
Antiguo 24/11/2011, 09:53
Avatar de 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: Update con condiciones

En un stored procedure. De ese modo la consulta es una sola (la llamada al SO pasando los parámetros) y el tema se resuelve en el SP.
De todos modos es una mala práctica, porque no se deben eviar a la base datos sin validar en la aplicación, lo que significa que en el formulario ya deberías haber establecido que se podía insertar antes de enviarlo.
Ese es el modo de trabajo correcto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 24/11/2011, 10:17
Avatar de Trebol-a  
Fecha de Ingreso: enero-2003
Ubicación: Cartagena, España
Mensajes: 44
Antigüedad: 21 años, 11 meses
Puntos: 0
Respuesta: Update con condiciones

Ok,
El problema es que tengo que hacerlo del lado del servidor porque el cliente está cacheado. Estoy tratando de cambiarlo para validar antes como comentas.

Gracias
  #6 (permalink)  
Antiguo 24/11/2011, 10:24
Avatar de 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: Update con condiciones

Bueno, un stored procedure existe sólo en el servidor de la base de datos. Es un componente de la base... En ese contexto, sólo existen en el servidor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: condicional, insert, update
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 08:07.