From: | Lennin Caro <lennin(dot)caro(at)yahoo(dot)com> |
---|---|
To: | pgsql-novice(at)postgresql(dot)org, MITCHELL CIFUENTES <mitchell(dot)cifuentes(at)gmail(dot)com> |
Subject: | Re: problem with sequence number using a trigger |
Date: | 2009-06-18 15:10:53 |
Message-ID: | 134500.82398.qm@web59510.mail.ac4.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
From: MITCHELL CIFUENTES <mitchell(dot)cifuentes(at)gmail(dot)com>
> Subject: [NOVICE] problem with sequence number using a trigger
> To: pgsql-novice(at)postgresql(dot)org
> Date: Wednesday, June 17, 2009, 9:07 PM
> Hello,
>
> I hope you can help with this. I have a BEFORE trigger that
> run every time an event insert o update occurs
> on a table called stock. It is working fine inserting the
> correct data on the table if the conditions are met,
>
> and inserting nothing if not.
> The problem is when it rejects the insert statement, the
> sequence number stock_id gets incremented
> even though nothing is inserted on the table. What can i do
> to stop stock_id from incrementing??.
>
>
> Mitchell
>
> p.d. This is the code.
>
> create function serie_trigger() returns trigger AS $$
> declare
> pro_record record;
> begin
> select * into pro_record from producto
> where producto_id = new.producto_id;
>
> if (pro_record.seriado = true)
> then
> if (new.serie IS NOT NULL)
> then
> if (new.cantidad = 1)
> then
> return new; -- new se usa como
> fuente para insert
>
> else
> raise notice 'ERROR:
> Candidad debe ser 1, las series se pueden insertar solo una
> a la vez';
> return NULL;
> end if;
> else
> raise notice 'ERROR: Debe ingresar
> una serie, el producto es seriado';
>
> return NULL;
> end if;
> else
> if (new.serie IS NULL)
> then
> return new; -- new se usa como fuente
> para insert
> else
> raise notice 'ERROR: El producto
> es no seriado, no corresponde ingresar serie.';
>
> return NULL;
> end if;
> end if;
> end;
> $$ language plpgsql;
>
>
>
>
when you try to insert data to a table whit serial the system take the next value and reserve this.
From | Date | Subject | |
---|---|---|---|
Next Message | Mike | 2009-06-18 17:51:39 | How to insert data from a text file |
Previous Message | Sean Davis | 2009-06-18 12:00:08 | Re: UUID, performance of primary keys |