Ir al contenido



Foto

actualizar un campo registro a registro de toda una tabla


  • Por favor identifícate para responder
6 respuestas en este tema

#1 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.991 mensajes
  • LocationArgentina

Escrito 08 agosto 2017 - 10:11

A ver muchachos, estoy quemado... Se me acabaron las neuronas. Se que posiblemente estoy preguntando algo medio tonto...

 

Necesito actualizar un campo cruzando por toda una tabla, es decir calcular por cada registro. Registro a registro.

Básicamente tengo 3 campos de interés, el 3ro se va a calcular en base a los otros 2.

 

¿Es posible hacerlo de un instrucción SQL? Es decir una especie de un "for each row update"

OJO: estoy en MySQL.

 

Saludos,


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.239 mensajes
  • LocationRepública Dominicana

Escrito 08 agosto 2017 - 11:00

Vía Stored Procedure con LOOP


  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.991 mensajes
  • LocationArgentina

Escrito 08 agosto 2017 - 12:01

Umm. ¿Y como le indico que pase al siguiente registro? ¿O es que lo hace automáticamente?

Pensé en un UPDATE FROM SELECT pero no estoy seguro de si este tipo de instrucción sería la apropiada y efectivamente hara el update registro a registro por toda la tabla.

Es una operación que se hará por única vez. Ya que de ahora en adelante el cálculo se hará al momento de insertar vía sistema.

Saludos
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.239 mensajes
  • LocationRepública Dominicana

Escrito 08 agosto 2017 - 12:15

LOOP lo que haces iterar registros, es igual que el for de PHP, debes indicarle hasta donde quieres llegar, en este caso debes obtener la cantidad de registros e iterar.


  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.658 mensajes
  • LocationMéxico

Escrito 08 agosto 2017 - 12:18

Umm. ¿Y como le indico que pase al siguiente registro? ¿O es que lo hace automáticamente?

Pensé en un UPDATE FROM SELECT pero no estoy seguro de si este tipo de instrucción sería la apropiada y efectivamente hara el update registro a registro por toda la tabla.

Es una operación que se hará por única vez. Ya que de ahora en adelante el cálculo se hará al momento de insertar vía sistema.

Saludos

 

 

¿En MySQL no se puede hacer algo como ésto......?


sql
  1. UPDATE TABLA
  2. SET CAMPO_C = CAMPO_A + CAMPO_B

Saludos


  • 0

#6 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.991 mensajes
  • LocationArgentina

Escrito 08 agosto 2017 - 12:56

LOOP lo que haces iterar registros, es igual que el for de PHP, debes indicarle hasta donde quieres llegar, en este caso debes obtener la cantidad de registros e iterar.

 

Voy a hacer una prueba.

 

¿En MySQL no se puede hacer algo como ésto......?


sql
  1. UPDATE TABLA
  2. SET CAMPO_C = CAMPO_A + CAMPO_B

Saludos

 

Este... Pos... si se puede. Y eso confirmaría que hice la pregunta más boluda.  :(  Me falta dormir 8o|  (y repasar SQL  *-)  )

Aunque ahora que lo pienso bien, debería de filtrarlo para los registros en los que el campo a calcular sea nulo o cero. No vaya a ser cosa que existan registros ya bien calculados.

 

Saludos,


  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.658 mensajes
  • LocationMéxico

Escrito 08 agosto 2017 - 04:37

Este... Pos... si se puede. Y eso confirmaría que hice la pregunta más boluda.  :(  Me falta dormir 8o|  (y repasar SQL  *-)  )

Aunque ahora que lo pienso bien, debería de filtrarlo para los registros en los que el campo a calcular sea nulo o cero. No vaya a ser cosa que existan registros ya bien calculados.

 

Saludos,

 

:D :D :D

 

No pasa nada mi estimado Marchello, suele pasar :)

 

Saludos


  • 0