[firebase-br] Cascade Delete em uma mesma tabela
Sandro Souza
escovadordebits em gmail.com
Seg Out 8 22:11:48 -03 2012
Bom dia/tarde/noite Walter.
Meu nobre, basta incluir a opção "on delete cascade" na chave estrangeira
da coluna "idpai" para a coluna "id" da mesma tabela.
Vamos criar a seguinte tabela:
CREATE TABLE PASTAS (
-- Id da pasta
ID INTEGER NOT NULL,
-- Id da pasta mãe
IDMAE INTEGER,
-- Descrição/nome da pasta
DESCRICAO VARCHAR (200) CHARACTER SET ISO8859_1 NOT NULL COLLATE PT_BR,
-- Chave primária
CONSTRAINT PK_PASTAS PRIMARY KEY (ID),
-- Chave única para não repetir pastas
CONSTRAINT UK_PASTAS_DESCRICAO UNIQUE (IDMAE, DESCRICAO));
-- Chave estrangeira para o id da chave mãe
ALTER TABLE PASTAS ADD CONSTRAINT FK_PASTAS_PASTAS FOREIGN KEY (IDMAE)
REFERENCES PASTAS ON UPDATE CASCADE ON DELETE CASCADE;
Agora é só testar.
Espero ter ajudado mais que atrapalhado. :D
No dia 8 de Out de 2012 21:24, "Walter Campelo" <walter em weasistemas.com.br>
escreveu:
> Boa noite!
>
> Caros colegas, tenho uma tabela com os campos abaixo, que apresenta uma
> estrutura em árvore (muito parecida com a estrutura de pastas do Windows)
> em
> um TreeView.
> ID
> NOME
> IDPAI
>
> A minha questão é: - Eu poderia de modo automático, através de um TRIGGER
> (ou por outro meio), eliminar todos os registros "filhos" quando um
> registro
> "pai" for eliminado?
>
> Algo assim:
>
> ID NOME IDPAI
> 1 Raiz 0
> 2 Filho1 1
> 3 Filho2 1
> 4 Pai1 1
> 5 Filho3 4
> 6 Filho4 4
>
> Assim, se eu eliminasse o registro com o ID = 4, os registros 5 e 6
> deveriam
> ser também eliminados, pois tem o IDPAI = 4.
>
> Alguma ideia?
>
> Muito grato
>
> Walter Campelo
> WEA Sistemas de Informática
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista