postgresql触发器在更新时选择值

时间:2016-06-03 16:34:23

标签: postgresql-9.3

这是我的名为table_abc的表:

table_abc screenshot

我需要编写一个Trigger,以便在更新此表时触发Select查询以检索更新的记录。

postgresql中,触发器必须通过存储过程。

所以,我已经使用table作为我的过程的返回类型,但我收到错误,因为table不允许返回类型。任何人都可以帮我写这个触发器/程序吗?

//procedure:
CREATE FUNCTION abc() RETURNS trigger AS $abc$
    BEGIN
        //here i want write a QUERY to rerieve updated row details when updating table_abc
    END;
$abc$ LANGUAGE plpgsql;

//trigger
CREATE TRIGGER abc BEFORE UPDATE ON table_abc
    FOR EACH ROW EXECUTE PROCEDURE abc();

//update query:
UPDATE table_abc SET x=7,y=8 WHERE id=2;

1 个答案:

答案 0 :(得分:1)

您不需要触发器,只需使用:

UPDATE table_abc 
   SET x=7,
       y=8 
WHERE id=2
RETURNING *;