| From: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
|---|---|
| To: | "Foster, Stephen" <stephenlfoster(at)comcast(dot)net> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: Trigger/Sequence headache |
| Date: | 2006-02-12 23:10:33 |
| Message-ID: | 20060212150559.S97294@megazone.bigpanda.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
On Sun, 12 Feb 2006, Foster, Stephen wrote:
> This is going to be one of those stupid problems of mine. I have an
> insert trigger setup to verify that duplicate or repeating information
> isn't storage in the table. If trigger function finds the information
> as a duplicate it returns a NULL and the information isn't added; that
> works. The problem I'm having is that it is incrementing the sequence
> counter even when the data isn't added. Is this something that I have
> to live with or should I be returning something other than a NULL?
The sequence is going to increment upon getting the value.
However, I think, if instead of using a default, you got the next value in
the trigger after you determined that it wasn't a duplicate and set the
field, it wouldn't increment for this case. This changes some other
behaviors a little (for example DEFAULT in updates as well), so you'd need
to see whether it'd be acceptable.
Of course, errors, rollbacks and deletes will still leave holes.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Foster, Stephen | 2006-02-12 23:25:20 | Re: Trigger/Sequence headache |
| Previous Message | Foster, Stephen | 2006-02-12 22:27:48 | Trigger/Sequence headache |