0
我第一次使用触发器,案例和存在,并不能找出问题。我已经替换了表名是属性,以方便响应者。Postgres语法错误 - 触发器
从本质上讲,我想的是:当我插入一个条目,以我的态表,
如果新条目的主键在颞表已经存在,我想这个新条目的开始日期成为之前记录的结束日期。
如果新条目对表完全是新的,则不会发生任何事情(插入操作如常)。
的代码是:
CREATE OR REPLACE FUNCTION update_End_Date()
RETURNS trigger AS
$$
BEGIN
SELECT CASE
WHEN EXISTS (SELECT TemporalTable.primaryKey FROM TemporalTable WHERE primaryKey = NEW.primaryKey)
THEN
UPDATE
TemporalTable
SET
TemporalTable.DtEnd = NEW.DtStart
WHERE
TemporalTable.PrimaryKey = NEW.PrimaryKey AND
TemporalTable.DtEnd IS NULL
;
END
RETURN NEW;
RETURN NEW;
END;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER update_End_Date
BEFORE INSERT
ON Table1
FOR EACH ROW
EXECUTE PROCEDURE update_End_Date();
你有什么问题?有错误吗?如果是这样,请提供错误详细信息。 – Nicarus