0

我在编程方面相当新。到目前为止一切都很顺利,但我无法解决这个问题。我正在使用 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;

先感谢您。

4

1 回答 1

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

您可以在文档中查看其他间隔值(例如 HOUR、DAY、WEEK、MONTH),如果您只查看当前点,您甚至可以使用 NOW() 而不必将时间值传递到存储过程中时间

于 2014-05-19T09:41:48.767 回答