| From: | Guillermo Villanueva <guillermovil(at)gmail(dot)com> |
|---|---|
| To: | Emanuel Calvo Franco <postgres(dot)arg(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 13:22:55 |
| Message-ID: | AANLkTinrJoLr5T1QXDUB4Cg9VhaGMde+-qohK3=UXit-@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
Buena idea!, lo voy a probar y te cuento.
Saludos
~~~~~~~~~~~~~~~~
Guillermo Villanueva
El 24 de marzo de 2011 08:24, Emanuel Calvo Franco
<postgres(dot)arg(at)gmail(dot)com>escribió:
> 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 | Jose David Verbel Tous | 2011-03-24 13:23:05 | Re: Problemas con COPY |
| Previous Message | Gustavo Garay | 2011-03-24 13:20:09 | Re: Lentitud BD postgresql !!! |