存储过程由时间定义

时间:2013-05-29 15:42:38

标签: mysql

我在编程方面相当新。到目前为止一切顺利,但我无法解决这个问题。我正在使用MySQL Workbench 5.2.42

我知道我需要创建一个存储过程

此过程需要删除我的数据库中的所有数据,但仅限于我超过15分钟的数据。我可以从ExpectedEnd列的时间戳访问时间。但我不知道如何做到这一点。

CREATE PROCEDURE p_DeleteOldData()
BEGIN
IF ExpectedEnd IS TIMESTAMP + 15 
DELETE * tables FROM (DelayedLoading, Loading, LoadingDock, LoadingError, Orders,     PartOrders, Semi, Trailer, Truck, Weighing)
End ;

我做了这个,虽然它确实是完全错误的。

编辑*

我尝试了这个,但我仍然无法弄清楚如何让它达到15分钟并删除。

CREATE PROCEDURE p_DeleteOldData(IN theTime DATETIME)
BEGIN
DELETE FROM Loading WHERE ExpectedEnd < theTime;
END;

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

CREATE PROCEDURE p_DeleteOldData(IN theTime DATETIME)
BEGIN
    DELETE FROM Loading WHERE ExpectedEnd < DATE_ADD(theTime, INTERVAL -15 MINUTE);
END;

您可以看到其他interval values in the docs(例如,HOUR,DAY,WEEK,MONTH),您甚至可以只使用NOW()而不必将时间值传递到存储过程中,如果您只是查看当前时间点