El día 23 de marzo de 2011 12:36, Guillermo Villanueva
<guillermo...@gmail.com> escribió:
> Gracias, disparaba el mismo error porque lo que estaba mal era la secuencia.
> Lo solucioné con un:
> SELECT setval('facturacion.nomenclador_id_nomenclador_seq', 366);
> Saludos
>

Si deseas evitar esto de una manera más o menos automatizada
(lo probé muy poco, puede tener contraindicaciones) es:

CREATE FUNCTION evitar() RETURNS TRIGGER AS $$
DECLARE
BEGIN
IF NEW.campo1 != currval('t1_campo1_seq'::regclass)
THEN
   SELECT nextval('t1_campo1_seq'::regclass) INTO NEW.campo1;
END IF;
RETURN NEW;
$$ LANGUAGE plgpsql;

CREATE TRIGGER T_t1_evitar_seq_rota BEFORE INSERT ON t1
FOR EACH ROW EXECUTE PROCEDURE evitar();


Contame si te sirve.

Saludos!



-- 
--
              Emanuel Calvo
              Helpame.com
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a