Actualizar campo Mysql con número consecutivo

28 de junio de 2012

Hola Gente:

En esta ocación quiero compartirles este pequeño truco de Mysql, ya les explico como llegué a este problema.

Resulta que tengo en una base de datos de Msyql al rededor de 1500 registros, bueno estos se ingresaron importandolos de un archivo CSV, bueno la cosa es que yo necesitaba reorganizar estos items, agregandoles un id numerico y consecutivo (eh ahi mi gran necesidad), bueno a continuacion les dejo la instruccion sql que permite solventar este problema:

update tabla a,(select @numeroConsecutivo:=0) tv 

set idItem=@numeroConsecutivo:=@numeroConsecutivo+1;

Es una instruccion de actualización que se ejecuta sobre "tabla" con el alias "a", luego tenemos otra "tabla virtual" con alias tv que se conforma por un select que me regresa una variable "numeroConsecutivo" inicializada a cero, luego le digo que al campo "idItem" le asigne ("set")  la variable que regresa "tv" incrementado en uno y asignada a si misma (para que en el siguiente registro conserve el valor anterior), esto lo hará hasta que no queden registros en la "tabla".

Espero se comprenda y a más de alguno le sea de utilidad.

Hasta pronto.

Comments

14 Comments

RSS
  1. Gracias justo lo que necesitaba.

    ResponderEliminar
  2. Gracias man me sirvio bastante el algoritmo...

    ResponderEliminar
  3. Muchas Gracias es justamente lo que yo necesitaba no sabes cuanto te agradesco gracias por compartirlo , un saludo :)

    ResponderEliminar
  4. Gracias por tan importante aporte...no tienes idea de la ayuda que me ha dado ese par de lineas....Gracias.

    ResponderEliminar
  5. Saludos, sabes como sería en en SQL Server?

    ResponderEliminar
  6. Excelente!! Justo lo que estaba buscando

    ResponderEliminar
  7. Excelente!! Justo lo que estaba buscando.
    Muchas gracias!
    Ramón.

    ResponderEliminar
  8. Excelente, gracias por tu aporte a la comunidad de Programadores

    ResponderEliminar
  9. Increible, me salvaste. Muchas gracias.

    ResponderEliminar
  10. Gracias, muy útil e ingenioso.

    ResponderEliminar
  11. Gracias, Me fue de gran ayuda!!!

    ResponderEliminar

Gracias por tu comentario...

Lenín Casco

Blog Informático