| From: | Bruno Wolff III <bruno(at)wolff(dot)to> |
|---|---|
| To: | Tomas Vondra <tv(at)fuzzy(dot)cz> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: implementing (something like) UNIQUE constraint using PL/pgSQL |
| Date: | 2007-01-27 07:55:05 |
| Message-ID: | 20070127075505.GA8035@wolff.to |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
On Fri, Jan 26, 2007 at 10:41:26 +0100,
Tomas Vondra <tv(at)fuzzy(dot)cz> wrote:
>
> in our application we need to implement a constraint that enforces 'at
> most N rows with this value', that is we have a table with 'flag' column
> and for each value there should be at most 10 rows (for example, the
> exact number does not matter).
Another approach is to add a instance number column and constrain that
value to be between 1 and 10. And make value and instance number unique.
You'll need to do a bit more work when inserting new rows than normal
(to find a free instance number). This should be very robust against
getting in a bad state.
If you go with enforcing the condition with a trigger you need to be careful
about simultaneous inserts and visibility.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Glaesemann | 2007-01-27 11:58:24 | Re: implementing (something like) UNIQUE constraint using PL/pgSQL |
| Previous Message | Oisin Glynn | 2007-01-26 23:25:06 | Re: [NOVICE] Windows 2K Installation difficulties... |