【发布时间】:2014-02-02 17:50:54
【问题描述】:
我想创建一个函数来计算两个日期之间的天数,并将结果存储在表格的列中
函数和触发器:
CREATE FUNCTION dur()
RETURNS TRIGGER
AS $$
BEGIN
NEW.duration = NEW.dateTO - NEW.dateFROM;
INSERT INTO calc(duration) VALUES (NEW.duration);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER dur
BEFORE INSERT ON calc
FOR EACH ROW EXECUTE PROCEDURE dur();
表:
CREATE TABLE calc(
idU SERIAL PRIMARY KEY,
dateFROM DATE NOT NULL,
dateTO DATE NOT NULL,
duration INTEGER );
当我做一个新的 INSERT INTO 时出现错误:
PL/pgSQL 函数“dur”在 SQL 语句的第 4 行 SQL 语句“INSERT INTO calc(duration) VALUES (NEW.duration)”
【问题讨论】:
标签: function postgresql date triggers