【发布时间】:2017-12-04 18:42:33
【问题描述】:
我的触发器有问题。我创建了一个触发器和一个函数 用于在执行 INSERT 时更新同一个表中的字段。 正在返回:
错误:FROM 中的函数“loss_func”具有返回类型触发器,即 不支持 LINE 1: SELECT * FROM table.loss_func ()
功能
CREATE OR REPLACE FUNCTION loss_func()
RETURNS trigger AS $loss_func$
BEGIN
NEW.dt_creation := to_char(now(), 'YYYY-MM-DD');
RETURN NULL;
END;
$loss_func$ LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION loss_func()
OWNER TO postgres;
触发器
CREATE TRIGGER tgr_loss
AFTER INSERT ON loss
FOR EACH ROW
EXECUTE PROCEDURE loss_func();
我做错了什么?
【问题讨论】:
-
SELECT * FROM table.loss_func ()你为什么要这样做?你想用这个选择什么?这就是导致错误的原因。删除它,它会尝试创建您的触发器。执行在第一行停止 -
AFTER触发器不能返回 NULL。 (也不能改变值)
标签: postgresql function database-trigger