我在编程方面相当新。到目前为止一切顺利,但我无法解决这个问题。我正在使用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;
提前谢谢你。
答案 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()而不必将时间值传递到存储过程中,如果您只是查看当前时间点