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

Responder a