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.

Lenín Casco

Blog Informático