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

Responder a