Ir para conteúdo
Fórum Script Brasil
  • 0

Triggers


Guest --ferro --

Pergunta

Guest --ferro --

Caros amigos,

Li sobre trigges e achei interessante.. porém não sei "onde utilizar". Daí, minha leitura ficou um pouco vaga, ou seja, li sobre algo interessante só que não sei se pode me ajudar.

Então.. vocês poderiam me dar alguns exemplo de onde os triggers são úteis? E.. se possível, mostrar o código de um?

Grato

Ferro

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

As trigger são usadas para executar alguma funcionalidade na ocorrencia de um evento. Por exemplo:

Se eu tenho uma tabela com um campo que guarda o valor do salário dos funcionários de uma empresa e alguém inserir um salário menor que 0. O que posso fazer para deixar meus dados consistentes?

Nesse caso pode ser criada uma trigger que a cada insert nessa tabela verifica-se o valor de salário para permitir ou não o armazenamento desse dado.

Exmplo que criei aqui:

Tenho uma tabela importante no sistema e criei uma nova tabela para armazenar log, ou seja, a cada modificacão nessa tabela terei registrado em uma outra tabela a operacao executada, além da data e hora e o usuário que fez a modificacao.

Tabela log:

create table log (id serial PRIMARY KEY, usuario varchar, data_hora timestamp without time zone, operacao varchar);
Stored Procedure
create function gera_log() returns trigger as
$$

Begin
         insert into log (data_hora, usuario, operacao) values (now(), user, TG_OP);
         return new;
end;

$$ language 'plpgsql';
Trigger
CREATE trigger tr_gera_log after insert or update or delete on leitura for each row execute procedure gera_log();

A cada insert, update ou delete a trigger é acionada e a funcão acima é executada, gravando assim o log da tabela leitura.

Se tiver dúvidas volte a postar.

;)

Link para o comentário
Compartilhar em outros sites

  • 0

Tudo bem esse exemplo é bem trivial. Mas como eu faria por exemplo pra atualizar uma tabela (total de compras de um usuario)

toda vez que eu inserisse uma compra em uma tabela. EX:

Compras_usuario

usuario 1 comprou 33,20

usuario 2 comprou 44,25

usuario 4 comprou 44,23

usuario 1 comprou 100,00

usuario 1 comprou 1,00

usuario 4 comprou 2,00

Saldo_usuario

usuario 1 total 134,20

usuario 2 total 44,25

usuario 4 total 46,23

Toda vez que eu insiro um dado novo em compras_usuario é necessario que eu atualize a tabela saldo_usuario, como eu faria isso? Detalhe, como eu faço pra percorrer a tabela compras_usuario a primeira vez???

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...