Re: composite primary key to foreign key

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: composite primary key to foreign key
Дата
Msg-id 20040313121850.T21437@megazone.bigpanda.com
обсуждение исходный текст
Ответ на composite primary key to foreign key  ("Ryan Vaughan" <ryanv@mminternet.com>)
Список pgsql-novice
On Fri, 12 Mar 2004, Ryan Vaughan wrote:

> I have a table with 4 columns, 3 of which make up a composite primary key.
> None of these columns are unique, but the combination of the the three
> primary keys will be unique:
>
> CREATE TABLE Table1 (
>    col1 integer,
>    col2 varchar(20),
>    col3 varchar(20),
>    col4 varchar(20),
>    CONSTRAINT PRIMARY KEY (col1, col3, col4)
> );
>
> In another table I have 3 columns:
>
> CREATE TABLE Table2 (
>    field1 integer,
>    field2 integer,
>    field3 integer,
> );
>
> I'd like to have field2 in table2 be a foreign key of col1 in table1.  Since
> col1 is not unique, is this possible or do I have to either bring in
> extraneous data from table1...col1, col2, and col3, or create some unique
> counter in table1 to use as reference?  All I care about in field2 of table2

Pretty much one of these is what is required to use foreign keys.

> is that it matches something in col1 in table1, I don't want the other data
> in table1.  I've searched archives but maybe I'm not looking for the right
> thing.  Thanks.

However, are you actually looking for a true foreign key constraint? Many
times people don't care about the reverse prevention of update/delete to
Table1 being prevented.  If that's the case you're in, a simpler trigger
in plpgsql may be closer to what you want.

В списке pgsql-novice по дате отправления:

Предыдущее
От: ericwilke@mac.com (Eric Wilke)
Дата:
Сообщение: PostgreSQL 7.2.1 on OS X -- psql: FATAL 1: user "postgres" does not exist
Следующее
От: "Hari Bhanujan"
Дата:
Сообщение: Startup script