我有一个有两个属性的表:ID&创建该记录的日期时间。如何在1天之后触发(程序?)删除记录?
编辑:在标题中添加了'自动',这意味着我想要一个每X时间执行一次的任务,而不是手动执行它。
答案 0 :(得分:2)
我建议您使用SQL Server代理并编写一个存储过程,删除日期传递的每一行。
您可以在此处找到如何使用Sql server agent作业:
https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job
和存储过程如:
CREATE PROCEDURE DeleteRows()
AS
BEGIN
DELETE FROM mytable
WHERE (DATEDIFF(DAY, DATEADD(day, -1, DateColum), GETDATE())) >= 1
END
编辑: where语句中的数字1是天。您可以将其更改为您想要使用的内容。
答案 1 :(得分:0)
删除超过一天的记录的声明是:
DELETE FROM tableName WHERE DATEDIFF(day, getdate(), dateColumn) < -1
您需要使用您可用的任何语言来表达该语句,例如php。
那说当然很难想象你想要首先删除记录的场景;)
答案 2 :(得分:0)
您可以创建一个SQL作业,在一天之后运行(或根据需要每天运行。)并执行带有简单删除语句的指定存储过程。
按照下一个主题: -