Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/04/2008, 10:39
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: ayuda con UPDATE masivos

Cita:
Iniciado por faiverson Ver Mensaje
Hola. No me sale como hacer un update masivo de lo siguiente:

Tengo esta tabla
TABLA USERS
id_user (PRIMARY KEY)
user (VARCHAR)
order (INTEGER, UNIQUE)

Cuando se crea un nuevo user, puedo elegir cualquier numero ya escrito como order:
ej. tengo
user order 1
user order 2
user order n=20

quiero ingresar otro user con order=15, es decir que tendria que cambiar los users que se encuentren entre 15 y n(20). Es decir, el user que tenia order 15, tengo que actulizarlo a 16, el de 16 lo tengo que actualizar a 17, y asi sucesivamente.
Lo que hago es ir cambiando con un UPDATE uno por uno.

Se puede hacer un UPDATE masivo?
Existe algo asi como un puntero en MySQL?
Se me ocurre que si quitas temporalmente el índice puedes hacerlo. Los pasos serían:
1) ALTER TABLE tabla DROP INDEX user_order // quitas el índice
2) UPDATE tabla SET user_order = user_order + 1 WHERE user_order > 14 //actualizas todos los registros sumándole uno desde el que quieres
3) INSER INTO tabla (user_order) values (15) //insertas el valor que deseas
4) ALTER TABLE `tabla` ADD UNIQUE (
`user_order`
) //vuelves a añadir el índice único