Gracias, lo que hice y me funciona es lo siguiente: select table_schema, table_name, substring(column_default from E'\\(\'([a-z_.]+)') as secuencia from information_schema.columns where column_default ~ '_seq';
Hace exactamente lo que quiero. Saludos Carlos Bazán El Tuesday 16 March 2010 21:40:47 Julio Cesar Rodriguez Dominguez escribió: > El 16 de marzo de 2010 18:30, Carlos Bazán <info...@vtr.net> escribió: > > Estimados listeros, > > Tengo una serie de tablas con campos tipo serial y lo que necesito hacer > > es tener un listado de estas tablas y sus respectivas secuencias. > > He buscado en el tema de consultar el catálogo pero no logro dar con > > asociar > > una determinada secuencia a la tabla que la usa. > > > > Se agradece la luz al respecto. > > > > Gracias > > Probablemente hubiera ayudado buscar en la lista, hay algunos ejemplos por > ahí; puede ser un inicio esto > > SELECT c.oid,n.nspname as esquema,c.relname as tabla,a.attname as > campo,pg_catalog.format_type(a.atttypid, a.atttypmod), > pg_catalog.pg_get_userbyid(c.relowner) as "propietario",(SELECT > substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128) > > > FROM pg_catalog.pg_attrdef d WHERE d.adrelid = a.attrelid AND d.adnum = > a.attnum AND a.atthasdef) as modificadores > FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = > c.relnamespace left join pg_catalog.pg_attribute a on a.attrelid=c.oid > WHERE c.relkind ='r' > AND n.nspname <> 'pg_catalog' > AND n.nspname <> 'information_schema' > AND n.nspname !~ '^pg_toast' > AND pg_catalog.pg_table_is_visible(c.oid) AND a.attnum > 0 > ORDER BY 2,3; > > Lo que dijo Jaime C. tambien puede ayudarte: > > "todo depende de como asociaste la secuencia y de que version de > postgres estemos hablando. > > al menos desde 8.0 en adelante existe la funcion > pg_get_serial_sequence(table_name, column_name) pero solo funciona > cuando la secuencia se asocio automaticamente usando serial o > bigserial (a partir del 8.4 podra funcionar tambien para secuencias > que hayan sido asociadas a una columna usando ALTER SEQUENCE ... OWNED > BY ...) " -- TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán