我有一个在postgres中工作的触发器,它允许视图变为可更新。
CREATE OR REPLACE FUNCTION actualizaIDConductor() RETURNS
TRIGGER AS '
BEGIN
RAISE NOTICE ''Working'';
SELECT COUNT(*) INTO bool
FROM Infotrenes
WHERE cod_empleado = OLD.cod_empleado;
RAISE NOTICE ''bool = %'', bool;
--The id belongs to the view
IF (bool > 0) THEN
UPDATE ...; --This works fine
ELSE
RAISE EXCEPTION ''ERROR: ...'';
END IF;
RETURN NEW;
END;
' LANGUAGE 'plpgsql';
当我想要更新不属于视图的行时,出现“问题”。它不是打印我的“ERROR:...”消息,而是显示UPDATE 0.它甚至不显示“工作”通知。
这是某种经理优化还是我做错了什么?我可以以某种方式打印消息吗?
答案 0 :(得分:0)
此代码不应该工作 - 有未声明的变量bool(辅助 - 由于命名数据类型相同,它的名称错误)。所以这段代码不应该工作,也不应该提出“工作”的通知。