Обсуждение: Question re: serial

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

Question re: serial

От
Michael Satterwhite
Дата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I have a table with a primary key defined as serial unique. When I insert a
row into the table, I need to get the value of that row back so that I can
use it to link rows in another table to it. How do I do that in Postgresql? I
know that I can define a sequence and insert the value manually, but is there
a way to query the value of the most recently inserted serial column of a
row?

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iD8DBQFAiqK0jeziQOokQnARArJKAJ0SEs8DO6ETa6yZI2Wq6SOmydEwzQCeIwLF
on3NovbSaHa+tBrvrynyQfI=
=d0AB
-----END PGP SIGNATURE-----



Re: Question re: serial

От
Devrim GUNDUZ
Дата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Hi,

On Sat, 24 Apr 2004, Michael Satterwhite wrote:

> I have a table with a primary key defined as serial unique. When I insert a
> row into the table, I need to get the value of that row back so that I can
> use it to link rows in another table to it. How do I do that in Postgresql? I
> know that I can define a sequence and insert the value manually, but is there
> a way to query the value of the most recently inserted serial column of a
> row?

See currval() and nextval() functions:

Regards,
- -- 
Devrim GUNDUZ           
devrim@gunduz.org                devrim.gunduz@linux.org.tr         http://www.TDMSoft.com
http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFAiqXrtl86P3SPfQ4RAsxkAKCQ9oL9Jo4a7VZwqyI4YU6L7i3nEACgv/wM
0ce7up3AVctCYyksk7OYIpY=
=8Hr5
-----END PGP SIGNATURE-----



Re: Question re: serial

От
Bruno Wolff III
Дата:
On Sat, Apr 24, 2004 at 12:24:03 -0500, Michael Satterwhite <michael@weblore.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> I have a table with a primary key defined as serial unique. When I insert a 
> row into the table, I need to get the value of that row back so that I can 
> use it to link rows in another table to it. How do I do that in Postgresql? I 
> know that I can define a sequence and insert the value manually, but is there 
> a way to query the value of the most recently inserted serial column of a 
> row?

When you use a serial type there a sequence is created for you. You
can reference the most recent value of that sequence within the current
session using currval.

You can use the \d command in psql to see what sequence is being used to
calculate the default value.