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 ...) "