El 16 de marzo de 2010 18:30, Carlos Bazán <[email protected]> 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 ...) "