Re: Nextval - Mailing list pgsql-php

From Marco Colombo
Subject Re: Nextval
Date
Msg-id Pine.LNX.4.33.0110121350120.28896-100000@Megathlon.ESI
Whole thread Raw
In response to Nextval  (Zavier Sheran <zsheran@yahoo.com>)
List pgsql-php
On Thu, 11 Oct 2001, Zavier Sheran wrote:

> I try to do the following:
>
> Fetch a SERIAL field (ie. record_id) and get the
> highest value currently stored (ie. 1000), increment
> the value by 1 and store a record that will have the
> same value (1001) in record_id. So there must be a way
> with concurrency control.
>
> I went through the manuals and found the solution with
> NEXTVAL('serial'), but you have to create a sequence
> for that, and I don't know if it is the right way to
> do for what I want.
>
> It is my first PHP project involving a Database, so
> it's a newbie question. Have mercy...
>
> Thanks
>

marco=# create table test_serial ( id serial );
NOTICE:  CREATE TABLE will create implicit sequence 'test_serial_id_seq' for SERIAL column 'test_serial.id'
NOTICE:  CREATE TABLE/UNIQUE will create implicit index 'test_serial_id_key' for table 'test_serial'

The serial type automagically creates both a sequence and an index:
the sequence is named <table>_<column>_seq and the index
<table>_<column>_key.

You can use nextval() on the sequence if you like, as in:
insert into test_serial values ( nextval('test_serial_id_seq') );

or have the column default to that so that you don't even bother on
inserts.

.TM.
--
      ____/  ____/   /
     /      /       /            Marco Colombo
    ___/  ___  /   /              Technical Manager
   /          /   /             ESI s.r.l.
 _____/ _____/  _/               Colombo@ESI.it


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster




pgsql-php by date:

Previous
From: Jason k Larson
Date:
Subject: Re: HTTP authentication
Next
From: Roberto Mello
Date:
Subject: Re: HTTP authentication