|
Olá, fiz uma trigger no ON UPDATE e INSERT da tabela PESSOA. No entanto,
há algo errado com o código, pois quando altero a tabela, dá um erro: "Error
while updating". Mas não me diz o erro dentro da trigger. Por isso gostaria
que alguém indicasse onde poderia estar o erro nessa trigger.
Obrigado.
CREATE OR REPLACE FUNCTION "public"."lex_tr_pessoa_fantasia"
() RETURNS trigger AS $body$ declare old_idfantasia bigint; declare
new_idfantasia bigint; declare registro record; BEGIN if
(old.idfantasia is null) then old_idfantasia :=
-1; else old_idfantasia :=
old.idfantasia; end if;
if (new.idfantasia is null) then
new_idfantasia := -1; else
new_idfantasia := new.idfantasia; end if; if
(new_idfantasia <> old_idfantasia) then
if (new_idfantasia = -1)
then
new.fantasia :=
null;
else
SELECT INTO registro
fantasia FROM fantasia where id =
NEW.idfantasia;
NEW.fantasia := registro.fantasia;
end if;
end if;
RETURN NULL; END; $body$ LANGUAGE 'plpgsql' IMMUTABLE
CALLED ON NULL INPUT SECURITY INVOKER;
|
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br