小编典典

在Postgres 9中触发更新当前日期

sql

我有两个叫sale和的表customer。我想创建一个触发器,更新列last_purchasecustomer在每个新的插入表sale的表。

表客户:customer_id,名称,last_sale,…
表销售额:sale_id,customer_id,日期,…

CREATE TRIGGER update_last_sale BEFORE INSERT ON sale FOR EACH ROW EXECUTE...

我已经开始写作,但我不知道该怎么做。
有人可以帮我吗?


阅读 192

收藏
2021-04-28

共1个答案

小编典典

CREATE FUNCTION update_customer_last_sale() RETURNS TRIGGER AS $$
BEGIN
    UPDATE customer SET last_sale=now() WHERE cutomer_id=NEW.customer_id;
    RETURN NEW;
END; $$
LANGUAGE plpgsql;

然后

CREATE TRIGGER update_last_sale
BEFORE INSERT ON sale
FOR EACH ROW EXECUTE update_customer_last_sale;

NEW是即将在销售表中插入的行。(对于更新行,将NEW取决于该行在更新之后的外观,以及OLD该行在更新之前的外观)。

2021-04-28