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