El día 23 de marzo de 2011 12:36, Guillermo Villanueva
<[email protected]> 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 ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda