Sim, pode não ser a ordem de criação.
Mas o OID é sempre crescente, não?


At.te,
Alisson Viegas
Acsiv Sistemas

-----Mensagem original-----
De: pgbr-geral-boun...@listas.postgresql.org.br
[mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Osvaldo
Kussama
Enviada em: terça-feira, 26 de janeiro de 2010 17:54
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] RES: RES: Ordem de criação das tabelas

2010/1/26 Alisson Viegas <li...@acsiv.com.br>:
> Hum...
>
> Legal. Valeu pela dica e pelo SQL.
>
> Vou usar da sua forma.
>
>
>
> At.te,
> Alisson Viegas
> Acsiv Sistemas
>
>
>
> De: pgbr-geral-boun...@listas.postgresql.org.br
> [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Fabrízio
de
> Royes Mello
> Enviada em: terça-feira, 26 de janeiro de 2010 17:07
> Para: Comunidade PostgreSQL Brasileira
> Assunto: Re: [pgbr-geral] RES: Ordem de criação das tabelas
>
>
>
>
>
> 2010/1/26 Alisson Viegas <li...@acsiv.com.br>
>
> <corte>
>
> select pg_tables.schemaname,pg_class.relname from pg_class
>
> inner join pg_tables on pg_tables.tablename = pg_class.relname
>
> where pg_class.relkind = 'r' and pg_class.relname !~ '_'
>
> order by pg_class.oid;
>
>
>
> Caro Alisson,
>
> Dessa forma o seu SQL não irá retornar tabelas que contenham o caracter
"_"
> no nome...
>
> Outro ponto é que se vc for utilizar o catálogo diretamente, sem fazer uso
> do information_schema pois este não tem o oid para vc ordenar, então é
mais
> adequado vc fazer a junção da *pg_catalog.pg_class* com
> *pg_catalog.pg_namespace* e não com a *pg_catalog.pg_tables* que é uma
visão
> que já faz essa junção, então dessa forma o seu SQL está *redundante*.
>
> O SQL que enviei no e-mail anterior previne essa *redundância* e faz a
> junção adequada no catálogo, assim como a visão *pg_catalog.pg_tables* e a
> *information_schema.tables*.
>


Atente para o fato que a ordenação pelo oid nem sempre garantirá que
esta ordem será a mesma que a ordem de criação das tabelas.
Vide:
http://www.postgresql.org/docs/current/interactive/ddl-system-columns.html
"OIDs are 32-bit quantities and are assigned from a single
cluster-wide counter. In a large or long-lived database, it is
possible for the counter to wrap around."

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a