在Postgres中,您可以使用触发器和函数来实现基于事件的实时更新。下面是一个示例代码,用于创建一个基于触发器的实时更新:
CREATE FUNCTION update_total() RETURNS trigger AS $$
BEGIN
UPDATE orders
SET total = (
SELECT SUM(price * qty)
FROM order_items
WHERE order_id = NEW.id
)
WHERE id = NEW.id;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_total_trigger
AFTER INSERT OR UPDATE OF price OR qty ON order_items
FOR EACH ROW EXECUTE PROCEDURE update_total();
这个例子展示了如何使用触发器和函数来自动更新订单总价。每次插入或更新订单项目时,触发器会运行函数,该函数将计算新订单总价格,并将其更新到订单表中。
请注意,此示例中使用的plpgsql是Postgres的特定编程语言。您可以使用其他编程语言来实现触发器和函数,如SQL或Python等。