Обсуждение: SEQUENCE primary key
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.
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
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/
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