Re: Primary and Foreign Key?
От | Oliver Elphick |
---|---|
Тема | Re: Primary and Foreign Key? |
Дата | |
Msg-id | 1127561508.10691.11.camel@linda.lfix.co.uk обсуждение исходный текст |
Ответ на | Primary and Foreign Key? ("A. Banks" <abanks@insightbb.com>) |
Список | pgsql-novice |
On Wed, 2005-09-21 at 19:46 -0500, A. Banks wrote: > I have the following related tables: > > PEOPLE > -------------- > peopleid pkey, > name, > etc > > > GROUPS > ------------- > groupid pkey, > description, > etc > > > PEOPLEGROUPS > ------------------- > peopleid pkey/fkey, > groupid pkey/fkey > > > What is the CORRECT way (in Postgres) to define the PEOPLEGROUPS table so > that it has both the double primary key AND still acts as a foreign key for > people.peopleid and groups.groupid? Can i specify both or is this not > necessary? Any suggestions would be appreciated. Your terminology is a bit wrong; there can only ever be one primary key for a table; what you want is probably a single primary key made up of two columns. Your definition will look like this: CREATE TABLE people ( peopleid SERIAL PRIMARY KEY, -- SERIAL is an INTEGER that autoincrements -- if no value is supplied on insertion name TEXT NOT NULL, ... ); CREATE TABLE groups ( groupid SERIAL PRIMARY KEY, name TEXT NOT NULL, ... ); CREATE TABLE peoplegroups ( peopleid INTEGER REFERENCES people (peopleid) ON UPDATE CASCADE ON DELETE NO ACTION, groupid INTEGER REFERENCES people (peopleid) ON UPDATE CASCADE ON DELETE NO ACTION, PRIMARY KEY (peopleid, groupid) ); -- Oliver Elphick olly@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver GPG: 1024D/A54310EA 92C8 39E7 280E 3631 3F0E 1EC0 5664 7A2F A543 10EA ======================================== Do you want to know God? http://www.lfix.co.uk/knowing_god.html
В списке pgsql-novice по дате отправления: