【问题标题】: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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-11
        • 2017-06-26
        • 2015-06-05
        • 2016-02-13
        • 1970-01-01
        • 2012-04-22
        相关资源
        最近更新 更多