【问题标题】:Create a trigger that deletes data from 14 days ago创建删除 14 天前数据的触发器
【发布时间】:2021-03-23 09:02:48
【问题描述】:
我需要创建一个触发器,允许我删除 14 天前的数据。
我知道如何创建 DELETE 查询,但我需要找到一种方法来用当前日期(14 天前)声明一个变量。
重要的是,我拥有的日期是一个时间戳... yyyy-mm-dd hh: ss: ms !!
La struttura della tabella è la seguente:
ID --> type:Int Primary Key
Name --> type:Varchar
Surname --> type:Varchar
registration_date --> type: TimeStamp
有人可以帮助我吗?谢谢!!
【问题讨论】:
标签:
mysql
sql
datetime
triggers
sql-delete
【解决方案1】:
CREATE EVENT delete_old_rows_from_tablename
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_DATE + INTERVAL 1 DAY
DO
DELETE
FROM tablename
WHERE registration_date < CURRENT_DATE - INTERVAL 14 DAY;
不要忘记启用Event Scheduler。
【解决方案2】:
您不希望触发器删除 14 天前的数据。触发器仅在数据更改时运行。因此,只需使用删除语句即可。
您应该安排这样的删除语句定期运行,可能使用事件 - 但您可能更喜欢其他一些调度机制。
与此同时,您还可以创建一个仅查看最新数据的视图:
create view v_t as
select t.*
from t
where registration_date >= current_date - interval 14 day;