Re: get sequence name from table name
От | Gerardo Herzig |
---|---|
Тема | Re: get sequence name from table name |
Дата | |
Msg-id | 4B194EBD.4050803@fmed.uba.ar обсуждение исходный текст |
Ответ на | get sequence name from table name (Uwe Maiwald <u.maiwald@kiss-net.de>) |
Список | pgsql-sql |
Uwe Maiwald wrote: > how to get the name of the sequence that is responsible for setting the > autoincrement value of a tables primary key column? > > i only have the name of the table and need to have an appropiate sql > statement. > > > i need this to write a program that loops through all tables of a > database and then ajusts the start values of the sequencees in case the > table has an automatic id value (serial/bigserial) > > > thanks, > Uwe > The information schema provides what you need. test=# create table testing (id serial); NOTICE: CREATE TABLE will create implicit sequence "testing_id_seq" for serial column "testing.id" test=# SELECT table_name, column_name, column_default from information_schema.columns where table_name='testing';table_name | column_name | column_default ------------+-------------+-------------------------------------testing | id | nextval('testing_id_seq'::regclass) (1 row) You may need an extra work finding out which the primary keys are, look at the information schema docs [0]. Maybe you will also need the help of the system catalogs [1]. [0] http://www.postgresql.org/docs/8.3/static/information-schema.html [1] http://www.postgresql.org/docs/8.3/static/catalogs.html (as you can see, this docs are from the 8.3 version. Check yours) HTH Gerardo
В списке pgsql-sql по дате отправления: