在postgresql中触发后,NEW运算符不起作用

时间:2012-05-23 08:02:20

标签: sql postgresql plpgsql

在postgresql 8.4.11中,这个触发器不起作用。更新后,字段modified_date不会更新。

CREATE OR REPLACE FUNCTION  upd_date() RETURNS TRIGGER AS $test$
DECLARE
BEGIN
  NEW.modified_date := clock_timestamp();
  RETURN new;
END;
$test$
LANGUAGE 'plpgsql'; 

CREATE TRIGGER myTable_upd_date
after update 
ON myTable
FOR EACH ROW
EXECUTE PROCEDURE upd_date();

如何解决此问题? 谢谢。

2 个答案:

答案 0 :(得分:2)

您无法更改之后触发器中的值,因为在值保持不变之后被触发了。

您需要将其更改为BEFORE UPDATE触发器。

答案 1 :(得分:0)

在更新之前而不是之后触发触发器。