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

dex*_*vip 3 sql database postgresql triggers

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

表客户:customer_id,name,last_sale,...
表销售:sale_id,customer_id,date,...

CREATE TRIGGER update_last_sale BEFORE INSERT ON sale FOR EACH ROW EXECUTE...
Run Code Online (Sandbox Code Playgroud)

我已经开始写作,但我不知道该怎么做.
有人能帮助我吗?

ste*_*tew 6

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;
Run Code Online (Sandbox Code Playgroud)

然后

CREATE TRIGGER update_last_sale
BEFORE INSERT ON sale
FOR EACH ROW EXECUTE update_customer_last_sale;
Run Code Online (Sandbox Code Playgroud)

NEW是即将插入销售表中的行.(对于更新行,它将是NEW更新后行的OLD外观,以及更新前行的外观).