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

se puede hacer este update?

Estas en el tema de se puede hacer este update? en el foro de Mysql en Foros del Web. Buen dia amigos del foro, es posible hacer este tipo de update?? update uni, temporal set uni.valor=temporal.valor where uni.valor=temporal.valor; las dos tablas tienen los mismos ...
  #1 (permalink)  
Antiguo 21/10/2011, 11:52
Avatar de timoteo666  
Fecha de Ingreso: agosto-2011
Ubicación: /home/Gdl
Mensajes: 242
Antigüedad: 12 años, 8 meses
Puntos: 11
Busqueda se puede hacer este update?

Buen dia amigos del foro, es posible hacer este tipo de update??
update uni, temporal
set uni.valor=temporal.valor
where uni.valor=temporal.valor;

las dos tablas tienen los mismos campos y del mismo tipo excepto uno, en la tabla uni tengo valor de tipo float y en la tabla temporal tengo valor de tipo decimal, espero sus consejos
__________________
( + ) lineas de código ( - ) televisión
  #2 (permalink)  
Antiguo 21/10/2011, 12:10
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: se puede hacer este update?

Una duda: ¿Estás seguro de la condición del WHERE? Porque así como está escrita esaconsulta no modificará nada.

Leela con cuidado:

Código MySQL:
Ver original
  1. update uni, temporal
  2. set uni.valor=temporal.valor
  3. where uni.valor=temporal.valor;
__________________
¿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 21/10/2011, 12:18
Avatar de timoteo666  
Fecha de Ingreso: agosto-2011
Ubicación: /home/Gdl
Mensajes: 242
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: se puede hacer este update?

Perdon, seria de esta forma
update uni, temporal
set uni.valor=temporal.valor
where uni.id=temporal.id;
ya lo hice de esta forma y no me actualiza nada.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Una duda: ¿Estás seguro de la condición del WHERE? Porque así como está escrita esaconsulta no modificará nada.

Leela con cuidado:

Código MySQL:
Ver original
  1. update uni, temporal
  2. set uni.valor=temporal.valor
  3. where uni.valor=temporal.valor;
__________________
( + ) lineas de código ( - ) televisión
  #4 (permalink)  
Antiguo 21/10/2011, 12:56
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: se puede hacer este update?

Entonces empecemos por el principio: ¿Qué te devuelve una consulta de este tipo:
Código MySQL:
Ver original
  1. FROM uni INNER JOIN temporal ON uni.id=temporal.id;
¿Te devuelve algún registro?
__________________
¿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 21/10/2011, 13:06
Avatar de timoteo666  
Fecha de Ingreso: agosto-2011
Ubicación: /home/Gdl
Mensajes: 242
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: se puede hacer este update?

si, me regresa 503 registros.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Entonces empecemos por el principio: ¿Qué te devuelve una consulta de este tipo:
Código MySQL:
Ver original
  1. FROM uni INNER JOIN temporal ON uni.id=temporal.id;
¿Te devuelve algún registro?
__________________
( + ) lineas de código ( - ) televisión
  #6 (permalink)  
Antiguo 21/10/2011, 13:14
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: se puede hacer este update?

Bien, afinemos un poco...
¿Qué te devuelve esto?:

Código MySQL:
Ver original
  1. FROM uni INNER JOIN temporal ON uni.id=temporal.id
  2. WHERE uni.id <> temporal.id;

La idea parte de la base de que MySQL sólo actualiza donde hay diferencia de valores.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 21/10/2011, 13:16
Avatar de timoteo666  
Fecha de Ingreso: agosto-2011
Ubicación: /home/Gdl
Mensajes: 242
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: se puede hacer este update?

Nada, no me devuelve ningun valor

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bien, afinemos un poco...
¿Qué te devuelve esto?:

Código MySQL:
Ver original
  1. FROM uni INNER JOIN temporal ON uni.id=temporal.id
  2. WHERE uni.id <> temporal.id;

La idea parte de la base de que MySQL sólo actualiza donde hay diferencia de valores.
__________________
( + ) lineas de código ( - ) televisión
  #8 (permalink)  
Antiguo 21/10/2011, 13:21
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: se puede hacer este update?

Eso implica que todos los valores entre ambas tablas, los 503 registros que te devuelve la consulta básica, son todos iguales, por lo que no realizará actualizaciones.

¿Se entiende el problema?

No puede hacer un UPDATE porque el campo "valor" entre ambos coincidentes contiene el mismo dato... O sea, en ese contexto no tiene sentido realizar cambios.
Esto hace que te devuelva un mensaje que diga "Afected rows: 0" o algo así.
__________________
¿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: campos, tabla
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 21:41.