Re: Using a serial primary key as a foreign key in a second table - Mailing list pgsql-novice

From Sean Davis
Subject Re: Using a serial primary key as a foreign key in a second table
Date
Msg-id 200612210722.00700.sdavis2@mail.nih.gov
Whole thread Raw
In response to Using a serial primary key as a foreign key in a second table  (Nathaniel <naptrel@yahoo.co.uk>)
Responses Re: Using a serial primary key as a foreign key in a second table
List pgsql-novice
On Thursday 21 December 2006 07:07, Nathaniel wrote:
> Hello folks, I'm an SQL novice indeed, but working on the premise
> that "No question is too simple for this list" here goes:
>
> This is just a dummy example to make the simple problem I'm trying to
> solve as clear as possible. Let's say I have 2 tables: people and
> companies.
>
> Company records have a primary key "company_id" that is a serial, and
> some other fields such as the company's name.
>
> A person record is simply some text fields (like name) and a foreign
> key, "company_id" which ties the person to a company. There is a
> foreign key constraint on people that ensures that every person is
> tied to a company which exists in the database.
>
> I want to add a new person, "Bugs Bunny", but I know that the company
> he work for, "Looney Tunes", is not in the database.
>
> So, I want to add the company "Looney Tunes" (which is auto-assigned
> a company_id value), and then extract that id value so that I can use
> it in the company_id foreign key field of Bugs Bunny's person record.
>
> What's the simple, multiple concurrent users-safe way of doing this
> in postgreSQL?

You simply add the company to the database, get its ID, and then insert the
person with the appropriate company_id.  That is the simplest way to think
about the process.  This will work for as many concurrent users as you like.

Sean

pgsql-novice by date:

Previous
From: Nathaniel
Date:
Subject: Using a serial primary key as a foreign key in a second table
Next
From: Nathaniel
Date:
Subject: Re: Using a serial primary key as a foreign key in a second table