Tema: Secuencia
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/09/2008, 02:26
seyko
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: Secuencia

Cada vez que elimines una factura anterior cambiar todos los codigos de las facturas siguientes es mala idea!
Puede utilizar una función propia para generar los codigos de las facturas en lugar de utilizar una sequencia.
Ahora mismo se me ocurre:

Código:
DECLARE 
maximo_codigo integer;
siguiente_codigo integer;
BEGIN
select max(n_factura) into maximo_codigo from tabla;

select min(numero) into siguiente_codigo from (
   select numero from generate_series(1, maximo_codigo)
   except
   select codigo_factura from tabla
) foo;

return  siguiente_codigo;
Es lo que se me ha venido a la cabeza de primeras, creo que esta bien.

Salu2

PD: Tengo pendiente mirar el tema de tu trigger pero ando un poco liado.