2017-08-11 7 views
0

データベースに作成されたMysqlイベントが正常に動作しますが、特定の時間間隔で実行したいと思っています。毎日何時間もMysqlイベントが可能ですか?

これは私の実際のイベントです:

CREATE DEFINER=`admin`@`%` 
EVENT `respaldoRegPosition` ON SCHEDULE EVERY 15 MINUTE STARTS '2017-08-11 14:59:30' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN 
    -- INSERT INTO BACKUP TABLE 

INSERT INTO regPositionBACKUP (idPosition, deviceId, lastPositionTime, divisionew, longitude, divisionns, latitude, direction, gradeLon, gradeLat, speed) 
-- GET DATA 
    SELECT idPosition, deviceId, lastPositionTime, divisionew, longitude, divisionns, latitude, direction, gradeLon, gradeLat, speed 
    FROM regPosition 
    WHERE regPosition.lastPositionTime < DATE_SUB(NOW(), INTERVAL 3 MONTH) 
    ORDER BY regPosition.lastPositionTime LIMIT 3000; 

-- DELETE DATA FROM ORIGINAL TABLE 
    DELETE FROM regPosition WHERE regPosition.lastPositionTime < DATE_SUB(NOW(), INTERVAL 3 MONTH) ORDER BY regPosition.lastPositionTime LIMIT 3000; 

END 

それがこれを行うことは可能ですか?

毎日00:00:00から06:00:00まで10分間隔で実行したいと思います。

イベントを10分間隔で問題なく作成できます(スケジュールは毎日10分)。これを毎日(毎日1日スケジュール)に実行して、10分ごとに実行するにはどうすればよいですか時間間隔。

+1

これは可能です。今、あなたの実際の質問は何ですか?コードを書く人がいますか?あなたはこれを「夜」で実行したいと思っています..あなたは何の夜があなたを意味するのか、誰かがどのように考えていますか?そのイベントがINTERVAL(15分)とWHENを受け入れることがわかります。だから、あなたが夜がいると信じる日から24時間ごとに走らせてください。 – Mjh

+0

申し訳ありません質問をするのを忘れました。スレッドを編集します。 –

+0

私はすでに投稿を編集しています。 –

答えて

0

は、私は私の問題を解決して、このスレッドを発見した情報を探していただきありがとうございます。

https://dba.stackexchange.com/a/80050

すべてのいただきありがとうございます。

[EDIT]

これは私が実装したソリューションでした:

BEGIN 

DECLARE rightnow DATETIME; 
DECLARE hh,mm TINYINT; 

    SET rightnow = NOW(); 
    SET hh = HOUR(rightnow); 
    SET mm = MINUTE(rightnow); 

    IF hh >= 02 AND hh <= 06 THEN 

     -- INSERT INTO BACKUP TABLE 
     INSERT INTO regPositionBACKUP (idPosition, deviceId, lastPositionTime, divisionew, longitude, divisionns, latitude, direction, gradeLon, gradeLat, speed) 

     -- GET DATA 
     SELECT idPosition, deviceId, lastPositionTime, divisionew, longitude, divisionns, latitude, direction, gradeLon, gradeLat, speed 
       FROM regPosition 
       WHERE regPosition.lastPositionTime < DATE_SUB(NOW(), INTERVAL 3 MONTH) 
       ORDER BY regPosition.lastPositionTime LIMIT 3000; 

     -- DELETE DATA FROM ORIGINAL TABLE 
     DELETE FROM regPosition WHERE regPosition.lastPositionTime < DATE_SUB(NOW(), INTERVAL 3 MONTH) ORDER BY regPosition.lastPositionTime LIMIT 3000; 

    END IF; 

END 

をだから私は10分ごとに常にイベントを実行できますが、それが実行されるイベントのコードに、この条件を追加します私が設定した時間間隔(02:00-06:00)に限り

関連する問題