Function postgresql函数/两个日期之间的触发天数
我想创建一个函数来计算两个日期之间的天数,并将结果存储在表中的列中 功能和触发器:Function postgresql函数/两个日期之间的触发天数,function,postgresql,date,triggers,Function,Postgresql,Date,Triggers,我想创建一个函数来计算两个日期之间的天数,并将结果存储在表中的列中 功能和触发器: 表: CREATE TABLE calc( idU SERIAL PRIMARY KEY, dateFROM DATE NOT NULL, dateTO DATE NOT NULL, duration INTEGER ); 当我重新插入时,出现错误: PL/pgSQL函数“dur”在SQL语句的第4行 SQL语句“插入计算(持续时间)值(新的.duration)” 您没有发布错误
表:
CREATE TABLE calc(
idU SERIAL PRIMARY KEY,
dateFROM DATE NOT NULL,
dateTO DATE NOT NULL,
duration INTEGER );
当我重新插入时,出现错误: PL/pgSQL函数“dur”在SQL语句的第4行 SQL语句“插入计算(持续时间)值(新的.duration)”
您没有发布错误,只是发布导致错误的语句
切中要害:去掉insert语句。你很可能在级联触发器,导致它一次又一次地调用自己。设置NEW.dur,然后返回NEW将在插入的行中设置该值。如果我理解,您必须自动计算
持续时间
字段,如果是这样,您只需删除:
INSERT INTO calc(duration) VALUES (NEW.duration);
因为,您已经使用以下公式计算了该字段:
NEW.duration = NEW.dateTO - NEW.dateFROM;
当删除“插入计算(持续时间)值(NEW.duration);”时,它会起作用;我有另一个命令!如何添加一个函数来计算表中添加的所有较早日期的duartion时间。
NEW.duration = NEW.dateTO - NEW.dateFROM;