【问题标题】:Deleting a row when it remains one month in the database在数据库中保留一个月时删除一行
【发布时间】:2017-06-11 20:27:25
【问题描述】:

在我的应用程序中,我希望用户能够在一个月内检索已删除的信息。

例如:

Create Table 'Names' (name varchar(20) primary key)

Create Table 'DeletedNames'
(
     name varchar(20) primary key,
     insertingTime DateTime not null
)

当我从Names 表中删除一行时,它被插入到DeletedNames 表中。

例如:

删除名称Mohammed,将插入DeletedNames:

| Mohammed |  | 2017-6-11 10:00 PM |

我想在 2017-7-11 10:00 PM 一个月后删除这个(自动)

我什么都没试过。也许触发器是一个解决方案,但我是触发器的初学者。

谢谢

【问题讨论】:

  • 触发器是高度特定于供应商的 - 所以请添加一个标签来指定您使用的是mysql、postgresql、sql-server、oracle 还是db2 - 或完全不同的东西。
  • 感谢 marc_s,我正在使用 MySQL
  • “也许触发器会是一个解决方案,但我是触发器的初学者”这句话的生活...只需阅读文档,您就会知道它们是多么容易

标签: mysql sql database triggers


【解决方案1】:

您不需要触发器。只需使用 delete 语句设置代理作业。安排它每天运行。

DELETE FROM DeletedNames WHERE InsertingTime < DATEADD(day,-30,GETDATE())

在 MySQL 中使用事件调度器。

【讨论】:

    【解决方案2】:

    我也不太擅长触发器,但您是否尝试过制作一个看起来有点像的触发器: DELETE FROM deletedNames WHERE month > currentDate-30Days

    【讨论】:

    • 如果您不确定,我可以建议您不要回答吗?你是新来的,我不会对你投反对票,但你的答案没有格式化,不是真正的答案,整个“兄弟”的事情..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2023-03-13
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多