Bom dia amigos, precisava urgente de uma ajuda de vocês, o meu problema é:
ao desativar uma unidade pai, preciso desativar todas as unidades filhas
recursivamente: tenho tentado da seguinte forma...
ESTRUTURA DA TABELA:
select * from estrutura_organizacional;
id_unidade | id_unid_superior | nm_unidade
| nm_sgl_unidade | tp_status | id_tipo_unidade
------------+------------------+-----------------------------------------------------------+----------------+-----------+-----------------
11 | 10 | Setor de Processamento
| SEPRO | A | 4
12 | 10 | Setor de Relatórios e estatísticas
| SEREL | A | 4
7 | 4 | Setor de acompanhamento de processos e
sistemas de gestão | SAPGE | A | 4
8 | 4 | Setor de Arquivo
| SEARQ | A |
4
9 | 4 | Setor de Matrícula
| SEMAT | A |
4
15 | 14 | Setor de Registro
| SEREG | A |
4
16 | 14 | Setor de Conferência Documental e Expedição
de Diplomas | SEDIP | A | 4
3 | 1 | Diretoria de administracao e controle
academico | DIRAC | A | 2
1 | | Pro Reitoria UFU
| PROGRAD | A |
10 | 3 | Divisão de controle acadêmico
| DICOA | A | 3
4 | 3 | Divisão de administração
| DIADM | A |
3
13 | 3 | Divisão de Informações e atendimento ao
acadêmico | DINFA | A | 3
14 | 3 | Divisão de Registro
| DIVRE | A |
3
(13 registros)
QUERY:
update estrutura_organizacional set tp_status='D' where id_unid_superior=10
or id_unidade in (
WITH RECURSIVE eotree(id_unidade,nm_sgl_unidade,id_unid_superior,tp_status)
AS(
select id_unidade,nm_sgl_unidade,id_unid_superior,tp_status
from estrutura_organizacional
where id_unid_superior is null
union all
select eo.id_unidade,eo.nm_sgl_unidade,eo.id_unid_superior,eo.tp_status
from estrutura_organizacional as eo
inner join estrutura_organizacional eoe
on(eo.id_unid_superior=eoe.id_unidade)
) )
A unidade de id=10 é a Divisão de Controle Acadêmico, ao desativá-la preciso
desativar também seus 2 setores:
SEREL e SEPRO.
Obrigado pela atenção!
--
- Tarcisio Martins Ferreira, 2010
- Analista Desenvolvedor de Sistemas
- Bacharel em Ciências da Comp.
- Universidade Federal de Uberlândia
- Minas Gerais
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral