- Este tópico contém 9 respostas, 4 vozes e foi atualizado pela última vez 18 anos, 9 meses atrás por
chduarte.
-
AutorPosts
-
13 de março de 2007 às 5:09 pm #78974
djdigao
ParticipanteBom 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 #78983Edgar
ParticipanteCREATE 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 #78986djdigao
ParticipanteOpa 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 #78989djdigao
ParticipanteDeu certo funcionou belezinha, muito obrigado Edgar valeu 🙂
14 de março de 2007 às 3:17 am #78998Leonardo Litz
ParticipanteOlá 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 #79000djdigao
ParticipanteHummmm, 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 #79003djdigao
ParticipanteAproveitando 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 #79006chduarte
ParticipanteIsso é 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 #79012djdigao
ParticipanteOpa 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 #79013chduarte
ParticipanteVc 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.