SEQUENCE primary key

Started by gustavo halperinabout 19 years ago4 messagesgeneral
Jump to latest
#1gustavo halperin
ggh.develop@gmail.com

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&amp;ignoreaccents=on&amp;wholewords=on&amp;searchtype=stemming&amp;text=sudden&amp;service=english2spanish&gt;
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.

#2John McCawley
nospam@hardgeus.com
In reply to: gustavo halperin (#1)
Re: SEQUENCE primary key

In PostgreSQL 8 and up:

SELECT lastval();

gustavo halperin wrote:

Show quoted text

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&amp;ignoreaccents=on&amp;wholewords=on&amp;searchtype=stemming&amp;text=sudden&amp;service=english2spanish&gt;
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

#3Chris
dmagick@gmail.com
In reply to: John McCawley (#2)
Re: SEQUENCE primary key

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/

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Chris (#3)
Re: SEQUENCE primary key

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