table 日期时间现在过去时触发脚本()
firing a script when table datetime passes now()
我已从数据库中删除,正试图重新回到数据库中。我记得很久以前创建了一个类似 EBAY 的应用程序,您可以在其中创建带有结束日期的拍卖,并且当日期过去时,它将关闭。如果我记得有 2 个属性。
我正在尝试创建一些类似的东西。用户将定义一个日期时间,当该日期发生时,它将触发一个 python 脚本。我认为它不一定会触发脚本,但一个不错的选择是:if datetime <= now(), insert into outbound_requests;
我正在努力记住关键字。
理想情况下,我正在考虑让数据库处理所有提升,然后当 now() 超过 table 的日期时间列时,它会在删除自身之前执行 python 脚本。
作为替代方案,我可以将条目移动到另一个 table 进行处理。
我不认为这是一个触发器,因为这似乎意味着某种条目被插入到数据库中。我在想的只是某种检查 table 约束的被动函数。
我的所有代码都在 python 中,但对免费 DBMS 开放,但倾向于 MySQL 或 SQLAlchemy
我知道,对于我的简单概念证明,我会有一个 table 类似于:
USER_ID varchar(60)
URL varchar(250)
COMMENT varchar(1000)
SUBMISSION_DATE datetime
PROCESS_DATE datetime
经过一些讨论,有人指出,要使其快速,请在流程日期上使用索引。这样 table 可以快速迭代。其次,我发现创建一个视图来获取我需要处理的利用索引的信息是明智的。
create table if not exists T(
USER_ID nvarchar(60),
URL nvarchar(250),
CONTENT nvarchar(700),
SUBMISSION_DATE datetime,
PROCESS_DATE datetime,
index PROCESS_DATE_IDX using BTREE (PROCESS_DATE)
);
create or replace view T_Vw as SELECT * FROM T where PROCESS_DATE < now();
根据已查看列的使用情况,将旧条目转储到存储中可能是明智之举 Table。
create table if not exists T_BK(
USER_ID nvarchar(60),
URL nvarchar(250),
CONTENT nvarchar(700),
SUBMISSION_DATE datetime,
PROCESS_DATE datetime,
index PROCESS_DATE_IDX using BTREE (PROCESS_DATE)
);
DELIMITER $$
CREATE TRIGGER T_tgr BEFORE DELETE ON Tweet FOR EACH ROW
BEGIN
insert into T_BK ('USER_ID', 'URL', 'CONTENT', 'SUBMISSION_DATE', 'PROCESS_DATE') values (OLD.USER_ID, OLD.URL, OLD.CONTENT, OLD.SUBMISSION_DATE, OLD.PROCESS_DATE);
END; $$
DELIMITER ;
我已从数据库中删除,正试图重新回到数据库中。我记得很久以前创建了一个类似 EBAY 的应用程序,您可以在其中创建带有结束日期的拍卖,并且当日期过去时,它将关闭。如果我记得有 2 个属性。
我正在尝试创建一些类似的东西。用户将定义一个日期时间,当该日期发生时,它将触发一个 python 脚本。我认为它不一定会触发脚本,但一个不错的选择是:if datetime <= now(), insert into outbound_requests;
我正在努力记住关键字。
理想情况下,我正在考虑让数据库处理所有提升,然后当 now() 超过 table 的日期时间列时,它会在删除自身之前执行 python 脚本。
作为替代方案,我可以将条目移动到另一个 table 进行处理。
我不认为这是一个触发器,因为这似乎意味着某种条目被插入到数据库中。我在想的只是某种检查 table 约束的被动函数。
我的所有代码都在 python 中,但对免费 DBMS 开放,但倾向于 MySQL 或 SQLAlchemy
我知道,对于我的简单概念证明,我会有一个 table 类似于:
USER_ID varchar(60)
URL varchar(250)
COMMENT varchar(1000)
SUBMISSION_DATE datetime
PROCESS_DATE datetime
经过一些讨论,有人指出,要使其快速,请在流程日期上使用索引。这样 table 可以快速迭代。其次,我发现创建一个视图来获取我需要处理的利用索引的信息是明智的。
create table if not exists T(
USER_ID nvarchar(60),
URL nvarchar(250),
CONTENT nvarchar(700),
SUBMISSION_DATE datetime,
PROCESS_DATE datetime,
index PROCESS_DATE_IDX using BTREE (PROCESS_DATE)
);
create or replace view T_Vw as SELECT * FROM T where PROCESS_DATE < now();
根据已查看列的使用情况,将旧条目转储到存储中可能是明智之举 Table。
create table if not exists T_BK(
USER_ID nvarchar(60),
URL nvarchar(250),
CONTENT nvarchar(700),
SUBMISSION_DATE datetime,
PROCESS_DATE datetime,
index PROCESS_DATE_IDX using BTREE (PROCESS_DATE)
);
DELIMITER $$
CREATE TRIGGER T_tgr BEFORE DELETE ON Tweet FOR EACH ROW
BEGIN
insert into T_BK ('USER_ID', 'URL', 'CONTENT', 'SUBMISSION_DATE', 'PROCESS_DATE') values (OLD.USER_ID, OLD.URL, OLD.CONTENT, OLD.SUBMISSION_DATE, OLD.PROCESS_DATE);
END; $$
DELIMITER ;