Re: retrieving a serial number

From: "Robert B(dot) Easter" <reaster(at)comptechnews(dot)com>
To: "Lea, Michael" <MLea(at)mpi(dot)mb(dot)ca>, "'pgsql-sql(at)postgresql(dot)org'" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: retrieving a serial number
Date: 2000-06-28 20:12:38
Message-ID: 00062816190002.00209@comptechnews
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


You can do something like this:
$var = SELECT nextval('seq_name');
INSERT INTO master (id, ...) VALUES ($var, ...);
INSERT INTO slave1 (id, ...) VALUES ($var, ...);
...

You can do a \d master, in psql to find out the name of the sequence. For
the SERIAL type, nextval('seq_name') is just its default anyway.

On Wed, 28 Jun 2000, Lea, Michael wrote:
> I have one table (call it "master") that, among other things, contains a
> serial number. I have a number of other tables (call them "slaves") that,
> among other things, contain a foreign key referring to the serial number in
> the first table. I will be inserting one row into the master table, and one
> row into zero or more slave tables in each transaction.
>
> What I want to do is use a sequence in the master table to let PostgreSQL
> automatically generate a unique serial number for me, but I need to know the
> serial number in order to insert the corresponding rows into the slave
> table(s). Is there any way of retrieving the serial number that will be used
> before the transaction has been committed? Or will I have to generate my own
> serial numbers?
>
> Michael Lea
> Information Security
> Manitoba Public Insurance
> Phone: (204) 985-8224
--
Robert B. Easter

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Patrick Coulombe 2000-06-28 20:21:40 temporay table : error is repeated.
Previous Message Brian Powell 2000-06-28 19:58:33 Backup of BLOBS