From: | Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com> |
---|---|
To: | Guillermo Villanueva <guillermovil(at)gmail(dot)com> |
Cc: | Héctor Alonso Lozada Echezuría <imatsu(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: insert con serial |
Date: | 2011-03-24 11:24:21 |
Message-ID: | AANLkTimtqi+HRr++26Cw5L_okie2Mp__nf9KiV-12=mC@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El día 23 de marzo de 2011 12:36, Guillermo Villanueva
<guillermovil(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Lazaro Ruben Garcia Martinez | 2011-03-24 12:00:56 | Re: log de postgresql !!! |
Previous Message | Rafael Martinez | 2011-03-24 07:58:07 | Re: Problemas con COPY |