DISPARAR TRIGGER PARA UMA SÓ COLUNA
-
- Rank: DBA Júnior
- Mensagens: 223
- Registrado em: Qui, 14 Dez 2006 10:45 am
- Localização: Brasília-DF
Cleber Zumba de Souza
Pessoal, alguém sabe como fazer para a trigger disparar somente quando uma determinada coluna for alterada?
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
você pode fazer uma trigger normal e colocar como primeira instrução um if verificando se a sua coluna foi alterada.. dai você coloca o codigo dentro desse if
-
- Rank: DBA Júnior
- Mensagens: 223
- Registrado em: Qui, 14 Dez 2006 10:45 am
- Localização: Brasília-DF
Cleber Zumba de Souza
Como? não entendi muito bem, pode me passar um exemplo?
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Qua, 07 Jul 2010 2:53 pm
- Localização: Americana - SP
Bom dia Cleber,
Basta colocar um when na sua trigger.
Segue o exemplo:
Ou seja, somente quando o campo valor for alterado essa trigger será executada.
falou!!
Basta colocar um when na sua trigger.
Segue o exemplo:
create table t_teste(
codigo number(9),
descricao varchar2(50),
valor number(15,2));
create trigger trg_teste
before update on t_teste
for each row
when (old.valor <> new.valor)
begin
dbms_output.put_line('Alterado!');
end;
falou!!
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
CREATE OR REPLACE TRIGGER PERSON_INSERT_AFTER
AFTER INSERT ON TABELA FOR EACH ROW
BEGIN
if :NEW.coluna <> :OLD.coluna then
seu_codigo;
end if;
END;
-
- Rank: DBA Júnior
- Mensagens: 223
- Registrado em: Qui, 14 Dez 2006 10:45 am
- Localização: Brasília-DF
Cleber Zumba de Souza
Valeu brother, agora consegui aqui.
-
- Rank: DBA Júnior
- Mensagens: 229
- Registrado em: Sex, 05 Set 2008 2:59 pm
- Localização: Igrejinha - RS
Opa...
Tu pode usar "OF".
Seguindo o exemplo do meu xará:
Tu pode usar "OF".
Seguindo o exemplo do meu xará:
create table t_teste(
codigo number(9),
descricao varchar2(50),
valor number(15,2));
create trigger trg_teste
before update OF VALOR on t_teste
for each row
begin
dbms_output.put_line('Alterado!');
end;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes