Boas ... Eu já envei este e-mail, mas como tive alguns problemas e não
estava recebendo e-mails da lista, pode ser que ninguém tenha
recebido... Ai vai novamente para ver se alguém pode me ajudar ...


Seguinte ... Preciso fazer um select de todas as tabelas do meu BD
(pg_class) , onde estas venha na seguinte ordem:

As tabelas que possuam FK , devem vir após sua tabela relacionada ...
(ORDEM para que no INSERT não haja problemas com chaves estrangeiras)...

Ex:
tenho as tabelas:pessoa, pessoa_endereco, endereco_tipo, cidade e estado.

as tabelas deveriam vir na seguinte ordem :

estado  ou endereco tipo (Que não possuem nenhuma FK)
cidade (Que possui a FK do Estado)
pessoa_endereco (Que possui as FK's de endereco_tipo, cidade e estado)
pessoa (Que possui FK de pessoa_endereco)

* Isso é só um exemplo, pois em minha base possuo mais de 200 tabelas,
quase todas elas relacionadas.

Através da pg_trigger eu consigo pegar as tabelas relacionadas com o select :

SELECT T.relname,(SELECT relname FROM pg_class WHERE oid = TG.tgrelid)
FROM pg_trigger TG
INNER JOIN pg_class T ON T.oid = TG.tgconstrrelid AND t.relname = 'pessoa'
INNER JOIN pg_namespace SCH ON SCH.oid = T.relnamespace
AND SCH.nspname = 'public';

Mas estou meio perdido de como montar uma função para ordenar isso...

Teria que ser algo assim :

SELECT * FROM pg_class ORDER BY tablenoconstraint();

ou

SELECT tablenoconstraint();

Bem.... Desde já agradeço ...

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

Reply via email to