Обсуждение: For the PG experts
Hi,
I have posted this on the pg main list ... and as I had no sensible answers, I am trying here.
Also, it's likely someone knows the answer as you need to get this info to display it in pgAdmin !
I would like to write a request where I would get the table name and column name of a sequence. I have been looking at the sytem table and could not link the sequence from pg_class to a table (and even less to a column).
Any ideas ?
Have fun,
L@u
The Computing Froggy
I have posted this on the pg main list ... and as I had no sensible answers, I am trying here.
Also, it's likely someone knows the answer as you need to get this info to display it in pgAdmin !
I would like to write a request where I would get the table name and column name of a sequence. I have been looking at the sytem table and could not link the sequence from pg_class to a table (and even less to a column).
Any ideas ?
L@u
The Computing Froggy
Envoyé avec Yahoo! Mail.
Une boite mail plus intelligente.
Hi Laurent.
As I understand where is no direct link between sequence and the table
column. You should see pg_attrdef table.
Query SELECT pg_get_expr(adbin,adrelid) FROM pg_attrdef; will return
you all default values of the columns. Among them you will find
nextval('your_sequence'::regclass).
Hope that helps...
Laurent ROCHE rašė:
> Hi,
>
> I have posted this on the pg main list ... and as I had no sensible
> answers, I am trying here.
> Also, it's likely someone knows the answer as you need to get this
> info to display it in pgAdmin !
>
> I would like to write a request where I would get the table name and
> column name of a sequence. I have been looking at the sytem table and
> could not link the sequence from pg_class to a table (and even less to
> a column).
>
> Any ideas ?
>
> Have fun,
> L@u
> The Computing Froggy
>
>
>
> ------------------------------------------------------------------------
> Envoyé avec Yahoo! Mail
>
<http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html>.
> Une boite mail plus intelligente.
--
Julius Tuskenis
Programavimo skyriaus vadovas
UAB nSoft
mob. +37068233050
On Jun 16, 3:34 pm, jul...@nsoft.lt (Julius Tuskenis) wrote:
> Hi Laurent.
>
> As I understand where is no direct link between sequence and the table
> column. You should see pg_attrdef table.
> Query SELECT pg_get_expr(adbin,adrelid) FROM pg_attrdef; will return
> you all default values of the columns. Among them you will find
> nextval('your_sequence'::regclass).
>
> Hope that helps...
Right, or more precisely, to get the default for your primary key
column myschema.mytab.mycol
use:
SELECT pg_catalog.pg_get_expr(d.adbin, d.adrelid) FROM pg_catalog.pg_attrdef d JOIN pg_catalog.pg_attribute a ON
d.adrelid= a.attrelid AND d.adnum
= a.attnum JOIN pg_catalog.pg_class c ON c.oid = a.attrelid JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname = 'myschema' AND c.relname = 'mytab' AND a.attname =
'mycol'
ORDER BY a.attnum
Gives you something like: nextval('mytab_mycol_seq'::regclass)
The quotet part being the sequence in use.
Where do I get this? Try psql -E and work from there. (Shows the
queries psql uses to retrieve its data.)
But all of this is hardly on topic here. Please turn to pgsql.admin (pgsql-admin(at)postgresql(dot)org)
or pgsql.general (pgsql-general(at)postgresql(dot)org)
Regards
Erwin