Vamos supor que eu tenha a seguinte tabela:
Cod = integer
Nome = String
CodPai = integer
Cod Nome CodPai
1 Profissoes 0
2 Mecanicos 1
3 Soldadores 1
4 Lanterneiros 1
5 Ferramentas 2
6 Salarios 2
7 Custo 5
Ou seja, se trata de uma árvore hierárquica.
Temos:
Profissoes=>Mecanicos=>Ferramentas=>Custo
O campo CODPai, armazena o código do pai daquele campo. Como exemplo
CODPai de Custo = 5 / Cod de Ferramentas = 5
A minha pergunta é a seguinte, como , qual, ou que rotina devo usar para excluir um registro deste banco de dados, excluindo automaticamente todos os filhos deste campo. Ex: Como excluir o Registro Mecanicos e automaticamente o sistema excluir os registros Ferramentas, Salários e Custo ?
Já consegui excluir Ferramentas e Salários pois ambos tem como Pai o CODIGO 2 (Mecanico), Mas não consigo excluir Custo, por que o Pai de Custo não é 2 e sim 5 (Ferramentas).
Estou quebrando cabeçã com isso, não consigo fazer a rotina de jeito nenhum. Precisava de um código que excluisse todos os filhos de um registro, independente do numero de graus. Neste caso só temos até o quarto grau (Custo). Mas e se a arvore tiver 10, 15, 20 graus? Que rotina poderia suportar isso?
Alguem por favor me ajude. Preciso disso com urgência.