Thread: Getting name of sequence for a table

Getting name of sequence for a table

From
Nicolas Ribot
Date:
Hello,

I was wondering if it is possible to get the name of sequences created
for a table by an SQL query ?

Ex: I have a parcel table, with a sequence created on it for the PK
column.
A java program, that doesn't know this sequence name needs  to retrieve
the unique ID of the object recently inserted into the parcel table.
I would like to do something like
select currval( (select seqname from pg_xxx where table_name='parcel')
).

I looked at the pg_class system table and see both my table and its
sequence, but do not find a way to join them in a query.

Thanx for any help.

Nicolas Ribot
SCOT
nri@scot.cnes.fr


Re: Getting name of sequence for a table

From
Dave Page
Date:

> -----Original Message-----
> From: Nicolas Ribot [mailto:nicolas.ribot@scot.cnes.fr]
> Sent: 15 March 2002 09:19
> To: pgadmin-hackers@postgresql.org
> Subject: [pgadmin-hackers] Getting name of sequence for a table
>
>
> Hello,
>
> I was wondering if it is possible to get the name of
> sequences created for a table by an SQL query ?
>
> Ex: I have a parcel table, with a sequence created on it for
> the PK column. A java program, that doesn't know this
> sequence name needs  to retrieve the unique ID of the object
> recently inserted into the parcel table. I would like to do
> something like select currval( (select seqname from pg_xxx
> where table_name='parcel') ).
>
> I looked at the pg_class system table and see both my table
> and its sequence, but do not find a way to join them in a query.

This is way off-topic for this list, but:

pg_attrdef.adrelid = the oid of your table
pg_attrdef.adnum = the column number you're interested in
pg_attrdef.adsrc = nextval('seq_name'::text)

For further help, checkout the catalog diagrams in the developers guide, and
try a PostgreSQL support list.

Regards, Dave.