- Este tópico contém 9 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 10 meses atrás por chduarte.
-
AutorPosts
-
13 de março de 2007 às 5:09 pm #78974djdigaoParticipante
Bom dia!
Sou novato com o Oracle e estou querendo fazer uma trigger que delete os dados da seguinte maneira
Tenho uma tabela X e uma Y———————————-
Tabela X
———————————-
ID_X
NOME———————————-
Tabela Y
———————————-
ID_Y
ID_X
EndereçoQuando eu fizer um DELETE na tabela X a trigger tem que deletar todos os códigos referentes a ele na tabela Y, é como um relacionameto de um para todos em um banco de dados ACCESS por exemplo. Espero ter explicado direitinho o que quero fazer, desde já agradeço a todos valeu 🙂
13 de março de 2007 às 9:21 pm #78983EdgarParticipanteCREATE OR REPLACE TRIGGER TRG_DEL_TABELA_X
BEFORE DELETE ON TABELA_X
FOR EACH ROW
BEGINDELETE FROM TABELA_Y WHERE ID = :OLD.ID ;
END ;
😮 ld – referencia da tabela mutante, no caso a tabela_x
before delete – antes de excluir o registro
for each row – para cada linha executa a trigger13 de março de 2007 às 9:50 pm #78986djdigaoParticipanteOpa Edgar blz?
Então no caso eu teria que usar OLD.ID_X ou somente OLD.ID??
Pois o Campo seria no caso do exemplo ID_X.13 de março de 2007 às 10:05 pm #78989djdigaoParticipanteDeu certo funcionou belezinha, muito obrigado Edgar valeu 🙂
14 de março de 2007 às 3:17 am #78998Leonardo LitzParticipanteOlá colega, existe tb uma outra forma de se fazer isso, é alterando o on delete da chave estrangeira da tabela filho para cascade.
Para isso vc deve dropar a constraint e depois reclia-la como delete cascade.
Ex:
alter table tb_cep drop constraint R_82
alter table tb_cep add constraint R_82 foreign key (IDCIDADE, IDBAIRRO)
references TB_BAIRRO (IDCIDADE, IDBAIRRO) on delete cascade;14 de março de 2007 às 3:35 pm #79000djdigaoParticipanteHummmm, legal saber disso tb Litz vou fazer um teste aqui para ver como é que funciona dessa forma. Galera agradeço de coração mesmo a ajuda de vcs, sou novato ainda em oracle mais quero logo estar firme no assunto, se eu puder ajudar vcs de alguma forma contem comigo, sou analista de desenvovimento atualmente estou trabalhando com C#, qualquer coisa posso dar um help vcs tb valeu e muito obrigado novamente.
14 de março de 2007 às 4:46 pm #79003djdigaoParticipanteAproveitando a ajuda de vcs, teria como eu fazer uma replicação de dados de um schema para outro, por exemplo tenho um schema chamado Empresa_Sys e um outro chamado Empresa_Teste, eu gostaria que tudo que fosse inserido, alterado e excluído fosse replicado para o Empresa_Teste, isso é possível fazer? Obrigado pela força 🙂
14 de março de 2007 às 5:10 pm #79006chduarteParticipanteIsso é possivel fazer utilizando uma feature bem complexa do Oracle chamada Advanced Replication.
Ou vc pode criar um trigger para cada evento para replicar os dados mas é muito complexo e pode judiar da performance.
[]
14 de março de 2007 às 7:03 pm #79012djdigaoParticipanteOpa chduarte, blz??
Aproveitando então eu poderia fazer um backup do schema e restaurar esse backup no schema Empresa_Teste? Como eu faria para fazer um backup só do schema Empresa_sys? Tem como fazer o backup só dele sem ser do banco inteiro?14 de março de 2007 às 7:38 pm #79013chduarteParticipanteVc pode fazer um script para uma vez por dia, fazer um export do usuario sys e import para o usuario teste.
[]
-
AutorPosts
- Você deve fazer login para responder a este tópico.