Fórum Como deletar tabelas com FK #471355
26/02/2014
0
Olá pessoal,
Eu estava querendo deletar uma tabela PAI com uma tabela FILHO. Estou utilizando o IBExpert e queria colocar um codigo em banco de dados dentro do TSQLClienteDataset para utilizar no delphi
Eu estava tentando criar o código mais sem sucesso. Eu sei que eu consigo deletar só a tabela filho desta maneira
Porém eu quero deletar também a tabela pai junto de uma vez eu tentei desta forma mais ele da um erro:
Eu acredito que foi da forma como eu fiz mesmo pois eu nunca fiz nada parecido. Alguem poderia me ajudar a deletar os dois de uma vez?
Desde já agradecido!
Eu estava querendo deletar uma tabela PAI com uma tabela FILHO. Estou utilizando o IBExpert e queria colocar um codigo em banco de dados dentro do TSQLClienteDataset para utilizar no delphi
Eu estava tentando criar o código mais sem sucesso. Eu sei que eu consigo deletar só a tabela filho desta maneira
delete from detalle_kit A where a.id_kit = :ID
Porém eu quero deletar também a tabela pai junto de uma vez eu tentei desta forma mais ele da um erro:
delete (delete from detalle_kit A where a.id_kit = :ID) from kit b where b.id_kit = :ID
Eu acredito que foi da forma como eu fiz mesmo pois eu nunca fiz nada parecido. Alguem poderia me ajudar a deletar os dois de uma vez?
Desde já agradecido!
Edson Vilhalba
Curtir tópico
+ 0
Responder
Posts
27/02/2014
Luiz
Boa tarde.
Uma saida é:
Na hora de criar FK você pode definir o delete on cascade, da uma pesquisada nisso: foreign key delete on cascade, ele automaticamente deleta os registros relacionados ao principal.
Outra sainda ainda, é criar uma trigger no banco de dados, quando acontecer um evento (delete) você dispara outro (deleta outra tabela).
Caso não queira tratar no banco e sim no fonte, outra saida é:
criar 2 sql no seu fonte em delphi:
delete from kit b where b.id_kit = :ID //primeiro deleta os registros da primeira tabela
delete from detalle_kit A where a.id_kit = :ID //depois deleta a segunda tabela ... ai vc pode deletar apenas os registro da 2 tabela, se a primeira deletou corretamente (ai vc trata com o try exception para saber se tudo correu bem)...
Abraços,
Luiz
Uma saida é:
Na hora de criar FK você pode definir o delete on cascade, da uma pesquisada nisso: foreign key delete on cascade, ele automaticamente deleta os registros relacionados ao principal.
Outra sainda ainda, é criar uma trigger no banco de dados, quando acontecer um evento (delete) você dispara outro (deleta outra tabela).
Caso não queira tratar no banco e sim no fonte, outra saida é:
criar 2 sql no seu fonte em delphi:
delete from kit b where b.id_kit = :ID //primeiro deleta os registros da primeira tabela
delete from detalle_kit A where a.id_kit = :ID //depois deleta a segunda tabela ... ai vc pode deletar apenas os registro da 2 tabela, se a primeira deletou corretamente (ai vc trata com o try exception para saber se tudo correu bem)...
Abraços,
Luiz
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)