From: | Gary Stainburn <gary(dot)stainburn(at)ringways(dot)co(dot)uk> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | references table(multiple columns go here) |
Date: | 2002-12-18 16:25:11 |
Message-ID: | 200212181625.11316.gary.stainburn@ringways.co.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi folks,
how do I define a referene from 2 columns in 1 table to 2 columns in another.
I have:
create table ranks (
rid int4 default nextval('ranks_rid_seq'::text) unique not null,
rdid character references depts(did), -- department
rrank int4 not null, -- departmental rank
rdesc character varying(40) -- Rank Description
);
create unique index "ranks_drank_index" on ranks using btree ("rdid",
"rrank");
copy "ranks" from stdin;
1 O 1 Trainee TTI
2 O 2 TTI
3 M 1 Cleaner
4 M 2 Passed Cleaner
5 M 3 Fireman.
\.
I would now like to define the following table so that inserts can only happen
if jdid matches rdid and jrank matches rrank.
create table jobtypes (
jid int4 default nextval('jobs_jid_seq'::text) unique not null,
jdid character references ranks(rdid), -- This joint reference
jrank int4 not null references ranks(rrank), -- needs sorting
jdesc character varying(40) -- job description
);
copy "jobtypes" from stdin;
1 M 3 Charge Cleaner
2 O 3 Lock Carriages
\.
(I want the first row to work and the second to be rejected)
--
Gary Stainburn
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2002-12-18 16:30:09 | Re: pl/pgsql question |
Previous Message | dnaren | 2002-12-18 15:52:00 | Error code for database down |