使用触发器根据postgresql中另一列的年份更新列

时间:2018-05-06 22:13:17

标签: sql postgresql

我正在尝试使用同一个表的date_of_join(datatype date)列的数据创建一个更新列提醒(数据类型日期)的触发器。提醒应该是明年1月1日。

我的功能是:

CREATE OR REPLACE FUNCTION update_reminder()
RETURNS TRIGGER AS
$$
BEGIN
NEW."reminder" := make_date(CAST (extract(year from timestamp NEW."date_of_join") AS INTEGER) ,2,3);
RETURN NEW;
END 
$$ LANGUAGE 
plpgsql;

我的触发器是:

CREATE TRIGGER "Trigger1"
BEFORE INSERT ON faculty
for each row
EXECUTE PROCEDURE update_reminder();

它给了我错误:“NEW”或其附近的语法错误

怎么做?

1 个答案:

答案 0 :(得分:0)

date_trunc可用于舍入年初;然后你可以加1年到达次年的1月1日:

NEW.reminder := date_trunc('year', NEW.date_of_join) + INTERVAL '1 year';