gpt4 book ai didi

postgresql - 更改日期触发

转载 作者:行者123 更新时间:2023-11-29 13:02:57 25 4
gpt4 key购买 nike

我正在尝试在我的数据库中创建一些触发器。现在我需要创建一个触发器,在日期更改时“触发”一个过程。它是用于银行管理的 Db。

我需要一些在预定日期开始的程序。例如,如果我想为 24/05/2014 设置一个授权操作,则此过程仅在当前日期等于指定值时才开始。

我读到有一些“调度程序”可以帮助我,但我不知道如何使用它们! (我正在使用 phpPgAdmin)没有设置一些预定程序我可以做些什么?只使用触发器?

这是我的(错误的)触发器

CREATE TRIGGER programmata 
AFTER INSERT ON transazione
FOR EACH ROW
EXECUTE PROCEDURE trans_programmata();

这是(错误的)过程“trans_programmata()”

DECLARE
p bit := 0;
BEGIN
IF(new.programmata = p)THEN
PERFORM * FROM aggiorna_conto();
ELSE
IF new.data >= current_date THEN
PERFORM * FROM aggiorna_conto();
END IF;
END IF;
RETURN NULL;
END;

这是“transazione”表

CREATE TABLE transazione (
id integer NOT NULL,
data date NOT NULL,
tipo bit(1) NOT NULL,
ammontare numeric(11,2) NOT NULL,
programmata bit(1) NOT NULL,
descrizione character varying(50) NOT NULL,
fk_conto integer NOT NULL,
fk_utente character(16) NOT NULL,
fk_categoria character varying(20) NOT NULL
);

显然,这种方式只会在“数据”的插入值等于当前日期时“触发”触发器。

最佳答案

Triggers (或 9.3+ 中的 event triggers)仅在定义的数据事件 上触发。您所说的是预定的(基于时间的)事件。 Postgres 中没有内置任何东西。

我通常使用 cron 作业来安排这样的作业。

还有pgAgent ,它曾经与 pgAdmin 一起打包。 (从 pgAdmin v1.9 开始,pgAgent 作为单独的应用程序提供。)

关于postgresql - 更改日期触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23742069/

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