Triggers (Gatilhos) não consigo criar.... Ajuda por favor!

30/06/2005

0

Olá pessoal, sou novo no mundo PostgreSQL e como todo novato estou cheio de dúvidas. Estou querendo desvendar os mistérios desse excepcional SGBD. Um problema que estou enfrentando é a criação de triggers. Eu preciso criar um gatilho bem simples, que apenas remove um item de dado de uma tabela antes do evento DELETE de uma outra tabela. Sei que é necessário criar uma função de gatilho mas ela não pode ter como base a própria linguagem SQL e sim uma linguagem interna (que ainda não descobri o que é) ou em C. Vi também que é possível criar funções normais baseadas em linguagem SQL, mas não consigo agregá-las a uma nova trigger. Alguém tem alguma idéia? Ou ainda, alguém conhece boas documentações disponiveis na net?
Desculpem o discurso aí...heheheh :lol:

Um abraço a todos. Bom dia.


Khaotix

Khaotix

Responder

Posts

30/06/2005

Khaotix

Aqui estão a função e a trigger que estou tentando criar....

CREATE FUNCTION deletarLicenca(id_licenca public.tb_licencas.id_lic¬TYPE) RETURNS trigger AS $$
BEGIN
DELETE FROM tb_licencas WHERE id_lic=id_licenca;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER ´trg_deletarLicenca´ BEFORE DELETE
ON tb_licencas FOR EACH ROW EXECUTE PROCEDURE public.deletarlicenca(id_lic);

Quanto executo o CREATE TRIGGER o SGBD me retorna: ´ERROR: function public.deletarlicenca() does not exist´. Que raio de erro é esse se a minha função foi criada com sucesso? Por que ele diz que minha função não existe?


Responder

05/07/2005

Tommahawk

Reescrevi seu exemplo deste jeito e criou a trigger normalmente. Só não testei se a trigger funcionou...

CREATE FUNCTION deletarLicenca() RETURNS trigger AS $$ 
declare id_licenca public.tb_licencas.id_lic¬TYPE;
BEGIN 
DELETE FROM tb_licencas WHERE id_lic=id_licenca; 
RETURN NEW; 
END; 
$$ LANGUAGE plpgsql; 

CREATE TRIGGER "trg_deletarLicenca" BEFORE DELETE 
ON tb_licencas FOR EACH ROW EXECUTE PROCEDURE public.deletarlicenca();



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar