Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/05/2012, 12:10
davikt
 
Fecha de Ingreso: mayo-2012
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 5
Respuesta: Actualizar ids

Hola afarias,

Tendrías que quitarle el auto_increment al id (nose si te conviene mucho).
Este es el código que se supone que lo haría (la verdad no lo he pensado mas a fondo)
Código:
drop schema if exists ejemplo;
create schema ejemplo;
use ejemplo;

create table nombres (
    id int primary key /*auto_increment*/,
    nombre varchar(50)
    );
    
insert into nombres values(1,'andres');
insert into nombres values(2,'felipe');
insert into nombres values(3,'arias');

delimiter $$

create trigger id_org after delete on nombres
    for each row 
    begin
        declare id_ini int default 0;
        set id_ini=old.id;
        repeat
            update nombres set id=id-1 where id=id_ini;
            set id_ini=id_ini+1;
        until id_ini=(select count(id) from nombres) end repeat;
    end $$
    
delimiter ;

delete from nombres where id=2;
El error que reporta es que no se puede actualizar una tabla mientras está siendo usada por un trigger. Le daré unas cuantas vueltas al cogote y te comento si se me ocurre algo.

¡Un saludo!