2010/1/26 Alisson Viegas <[email protected]>: > Hum... > > Legal. Valeu pela dica e pelo SQL. > > Vou usar da sua forma. > > > > At.te, > Alisson Viegas > Acsiv Sistemas > > > > De: [email protected] > [mailto:[email protected]] 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 <[email protected]> > > <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 [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
