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 に答える