Re: [SQL] Verificate values in other table? - Mailing list pgsql-sql

From Peter Eisentraut
Subject Re: [SQL] Verificate values in other table?
Date
Msg-id Pine.LNX.4.20.9911141936290.797-100000@peter-e.yi.org
Whole thread Raw
In response to Verificate values in other table?  ("juman" <juman@spray.se>)
Responses Re: [SQL] Verificate values in other table?  (wieck@debis.com (Jan Wieck))
List 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
INSTEADNOTHING;
 

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@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden



pgsql-sql by date:

Previous
From: Howie
Date:
Subject: Re: [SQL] how can tell if a column is a primary key?
Next
From: wieck@debis.com (Jan Wieck)
Date:
Subject: Re: [SQL] Verificate values in other table?