Re: Adding Records With SERIAL Primary Key

From: Scott Marlowe <smarlowe(at)g2switchworks(dot)com>
To: Rich Shepard <rshepard(at)appl-ecosys(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Adding Records With SERIAL Primary Key
Date: 2005-05-03 17:12:49
Message-ID: 1115140369.13303.1491.camel@state.g2switchworks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, 2005-05-03 at 11:58, Rich Shepard wrote:
> I may have missed this in the docs; if so, please tell me where to find the
> answer there. If not, I still need to learn how to resolve this situation.
>
> The database schema has been designed and the tables are ready to be
> created. Once they exist, I want to load data into the tables in batch mode
> (rather than one at a time, manually). The core table has a SERIAL data type
> field as the primary key. How is this field assigned values? Then, how do I
> load the related tables so they reference the proper records?

The normal way it's added is with a DEFAULT clause. This means it can
be overridden by inserting it by hand. Changing this to an after trigger
can ensure that it is always inserted no matter what the user app tries
to do.

When loading in data using the copy command, one can set the columns to
be copied, and the system will insert the serial value for you if you
leave that column out of the list.

If your data already has a value assigned, you can load those in, and
then use setval() to set the value of the associated sequence.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rich Shepard 2005-05-03 17:20:16 Re: Adding Records With SERIAL Primary Key
Previous Message Ragnar Hafstað 2005-05-03 17:10:26 Re: does database shut down cleanly when WAL device