gpt4 book ai didi

database - 如何在 PostgreSQL 中创建复制触发器函数?

转载 作者:搜寻专家 更新时间:2023-10-30 21:50:29 25 4
gpt4 key购买 nike

我有一张 table

CREATE TABLE order (
id SERIAL PRIMARY KEY NOT NULL,
total_price DECIMAL(12, 2),
date TIMESTAMP WITH TIME ZONE DEFAULT now(),
product_amount INT
);

还有另一个订单历史表

CREATE TABLE order_history (
id SERIAL PRIMARY KEY NOT NULL,
order_id INT,
total_price DECIMAL(12, 2),
date TIMESTAMP WITH TIME ZONE DEFAULT now(),
product_amount INT
);

我需要一个用于 ORDER 表的触发器函数,它可以在我将一些数据插入到 ORDER 表或更新数据时触发事件。此外,此过程必须将数据保存到表 ORDER_HISTORY 中。

最佳答案

你在找这样的东西吗?

CREATE OR REPLACE FUNCTION save_order_in_history()
RETURNS trigger
AS $$
BEGIN
INSERT INTO order_history(order_id, total_price, product_amount)
VALUES (NEW.id, NEW.total_price, NEW.product_amount);
RETURN NULL;
END $$ LANGUAGE plpgsql;

CREATE TRIGGER order_trigger AFTER INSERT OR UPDATE
ON "order" FOR EACH ROW EXECUTE PROCEDURE save_order_in_history();

这是 SQLFiddle 演示

进一步阅读:

关于database - 如何在 PostgreSQL 中创建复制触发器函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26047667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com