Обсуждение: SEQUENCE primary key

Поиск
Список
Период
Сортировка

SEQUENCE primary key

От
gustavo halperin
Дата:
Hello

 I have a question, if I have a table with a SEQUENCE primary key, that
obviously, I doesn't give in each new row inserted. For example if the
table locks:
  CREATE SEQUENCE id_seq;
  CREATE TABLE table (
    id    integer         DEFAULT nextval('id_seq')  CONSTRAINT table_id
PRIMARY KEY,
    arg1 integer,
    arg2 integer
  )

 How can I know which id receive each new row. I mean,

<http://ultralingua.com/onlinedictionary/index.html?action=define&ignoreaccents=on&wholewords=on&searchtype=stemming&text=sudden&service=english2spanish>

suddenly  I insert one row (*) with the arg1 and arg2 . So ...,  there
are something that I receive back ?? Some pointer, something? There are
any way to know which number receive my row ?

 Thank you,
   Gustavo

(*) This process can be multi-thread. In my case I use the libraries
with the wxWidget project with the class wxDbTable.

Re: SEQUENCE primary key

От
John McCawley
Дата:
In PostgreSQL 8 and up:

SELECT lastval();

gustavo halperin wrote:

> Hello
>
> I have a question, if I have a table with a SEQUENCE primary key, that
> obviously, I doesn't give in each new row inserted. For example if the
> table locks:
>  CREATE SEQUENCE id_seq;
>  CREATE TABLE table (     id    integer         DEFAULT
> nextval('id_seq')  CONSTRAINT table_id PRIMARY KEY,
>    arg1 integer,
>    arg2 integer
>  )
>
> How can I know which id receive each new row. I mean,
>
<http://ultralingua.com/onlinedictionary/index.html?action=define&ignoreaccents=on&wholewords=on&searchtype=stemming&text=sudden&service=english2spanish>

> suddenly  I insert one row (*) with the arg1 and arg2 . So ...,  there
> are something that I receive back ?? Some pointer, something? There
> are any way to know which number receive my row ?
>
> Thank you,
>   Gustavo
>
> (*) This process can be multi-thread. In my case I use the libraries
> with the wxWidget project with the class wxDbTable.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>       choose an index scan if your joining column's datatypes do not
>       match


Re: SEQUENCE primary key

От
Chris
Дата:
John McCawley wrote:
> In PostgreSQL 8 and up:
>
> SELECT lastval();

Actually it's better to use currval.

See
http://people.planetpostgresql.org/xzilla/index.php?/archives/169-Is-lastval-evil.html

--
Postgresql & php tutorials
http://www.designmagick.com/

Re: SEQUENCE primary key

От
Tom Lane
Дата:
Chris <dmagick@gmail.com> writes:
> Actually it's better to use currval.

Right.  Also, in 8.2 and up there's INSERT RETURNING, which is far
more flexible --- for instance it could pull back an insertion
timestamp.

            regards, tom lane