【发布时间】:2019-02-01 02:56:47
【问题描述】:
我正在尝试创建一个触发器和过程以在 UPDATE 和 INSERT 时更新 last_changed_timestamp 列。
我可以很好地注册函数并触发,但是当我尝试更新记录时收到错误消息。
CREATE OR REPLACE FUNCTION update_my_table_last_changed_timestamp()
RETURNS trigger AS
$BODY$
BEGIN
UPDATE my_table SET NEW.last_changed_timestamp = NOW();
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER trigger_update_my_table_last_changed_timestamp
BEFORE UPDATE
ON my_table
FOR EACH ROW
EXECUTE PROCEDURE update_my_table_last_changed_timestamp();
column "new" of relation "my_table" does not exist
我也不完全理解 update_my_table_last_changed_timestamp 如何知道它应该更新哪一行,也不知道是否有参数传递给它,我如何将这些变量从触发器获取到过程。
【问题讨论】:
标签: postgresql triggers