Fernandinha Posted December 15, 2011 Report Share Posted December 15, 2011 Olá pessoal.Não sou conhecedora de Postgre, trabalho somente com SQL, e gostaria de saber qual é a sintaxe no Postgre para criação de trigger. É uma trigger de insert.Obrigada!!! =) Quote Link to comment Share on other sites More sharing options...
0 Vinicius Schuh Posted December 15, 2011 Report Share Posted December 15, 2011 Boa Tarde Fernandinhada uma olhada nesse link:http://imasters.com.br/artigo/10644/postgr..._no_postgresql/ Quote Link to comment Share on other sites More sharing options...
0 Fernandinha Posted January 19, 2012 Author Report Share Posted January 19, 2012 Oi, o site está fora... =(Onde devo executar a criação da trigger???Qual a forma de acesso???Obrigada. Quote Link to comment Share on other sites More sharing options...
0 Fernandinha Posted January 19, 2012 Author Report Share Posted January 19, 2012 Estou tentando criar a trigger abaixo, mas está dando erro.Segue exemplo do que estou executando:CREATE TRIGGER tr_MudancaStatus AFTER INSERTON 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. Quote Link to comment Share on other sites More sharing options...
0 Fernandinha Posted January 19, 2012 Author Report Share Posted January 19, 2012 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(); Quote Link to comment Share on other sites More sharing options...
Question
Fernandinha
Olá pessoal.
Não sou conhecedora de Postgre, trabalho somente com SQL, e gostaria de saber qual é a sintaxe no Postgre para criação de trigger.
É uma trigger de insert.
Obrigada!!! =)
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.