Jump to content
Fórum Script Brasil
  • 0

Trigger


Fernandinha

Question

4 answers to this question

Recommended Posts

  • 0

Estou tentando criar a trigger abaixo, mas está dando erro.

Segue exemplo do que estou executando:

CREATE TRIGGER tr_MudancaStatus AFTER INSERT

ON TICKET FOR EACH ROW

UPDATE tabela

SET campo = 'Status 1'

WHERE TYPE IN ('A', 'B')

AND campo = 'New'

UPDATE tabela

SET campo = 'Status 2'

WHERE TYPE IN ('C', 'D')

AND campo = 'New';

Obrigada.

Link to comment
Share on other sites

  • 0

Consegui... Caso alguém precise segue exemplo:

CREATE OR REPLACE FUNCTION processa_emp_audit() RETURNS TRIGGER AS $emp_audit$

BEGIN

--

-- Não permitir atualizar a chave primária

--

IF (NEW.codigo <> OLD.codigo) THEN

RAISE EXCEPTION 'Não é permitido atualizar o campo codigo';

END IF;

--

-- Inserir linhas na tabela emp_audit para refletir as alterações

-- realizada na tabela emp.

--

IF (NEW.nome <> OLD.nome) THEN

INSERT INTO emp_audit SELECT CURRENT_USER, CURRENT_TIMESTAMP,

NEW.id, 'nome', OLD.nome, NEW.nome;

END IF;

IF (NEW.salario <> OLD.salario) THEN

INSERT INTO emp_audit SELECT CURRENT_USER, CURRENT_TIMESTAMP,

NEW.codigo, 'salario', OLD.salario, NEW.salario;

END IF;

RETURN NULL; -- o resultado é ignorado uma vez que este é um gatilho AFTER

END;

$emp_audit$ LANGUAGE plpgsql;

CREATE TRIGGER emp_audit

AFTER UPDATE ON empregados

FOR EACH ROW EXECUTE PROCEDURE processa_emp_audit();

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...