I am trying to track down a method of determining what a sequence name is for a SERIAL is in postgresql.
For example, CREATE TABLE foo (id SERIAL PRIMARY KEY NOT NULL, bar TEXT); \d foo Table "public.foo" Column | Type | Modifiers --------+---------+----------------------------------------------------- id | integer | not null default nextval('public.foo_id_seq'::text) bar | text | Indexes: "foo_pkey" primary key, btree (id) Now, I have figured out how to get a list of all the sequences with: foo=> SELECT relname FROM pg_class WHERE relkind='S' AND relname !~ '^pg_'; relname ------------ foo_id_seq (1 row) I can find public.foo in pg_tables, but I am not sure how to relate pg_tables and pg_class in order to find the sequence for a specific field in public.foo. Can anyone point me in the right direction? I am trying to get out of the habit of hard-coding the sequence names in my code. Now that I think of it, I am lacking 'public.' as well from my query. Ok, so how would I go about getting the sequence name for a SERIAL field on any given schema.table? I would like to build a function that would return this value if I pass it the schema and table (and fieldname is necessary) Thanks, Robby -- /*************************************** * Robby Russell | Owner.Developer.Geek * PLANET ARGON | www.planetargon.com * Portland, OR | [EMAIL PROTECTED] * 503.351.4730 | blog.planetargon.com * PHP/PostgreSQL Hosting & Development * --- Now supporting PHP5 and PHP4 --- ****************************************/
signature.asc
Description: This is a digitally signed message part