From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | juman <juman(at)spray(dot)se> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: [SQL] Verificate values in other table? |
Date: | 1999-11-14 18:44:52 |
Message-ID: | Pine.LNX.4.20.9911141936290.797-100000@peter-e.yi.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Btw., the term is "Referential integrity".
At some point there was something of that nature in the contrib dir but I
can't seem to find it now.
The usual way to solve this is to make a "rule" like so:
CREATE RULE check_for_junk AS ON insert TO table2
WHERE 0 = (SELECT COUNT(*) FROM table1 WHERE table1.ids = new.id)
DO INSTEAD NOTHING;
and a similar one for updates. Perhaps you also want one "ON delete TO
table1" to check for the reverse condition.
Proper foreign keys are slated to appear in 7.0.
On 1999-11-14, juman mentioned:
> I'm working on a little database and got stuck with the following problem. I
> have two tables that look like this
>
> table1 ( ids char(4) )
> table2 ( id char(4), comment text)
>
> What I want to do is that if someone adds or updates a row in in table2 I
> want to verify that the <id> given exists in table1. And if it doesn't don't
> accept the modification and give the user a error message. Is there some way
> to do this?
>
> / Fredrik
>
>
> ************
>
>
--
Peter Eisentraut Sernanders vaeg 10:115
peter_e(at)gmx(dot)net 75262 Uppsala
http://yi.org/peter-e/ Sweden
From | Date | Subject | |
---|---|---|---|
Next Message | Chaotic Inceptions | 1999-11-14 21:03:04 | Arrays of composites, bug or usage? |
Previous Message | juman | 1999-11-14 10:25:29 | Verificate values in other table? |