2017-08-03 4 views
0

このイベントを作成しようとしていますが、構文エラーが見つかりません。MySqlイベントの構文エラー

CREATE 
EVENT respaldoRegRawInformeAperturaLocal 
ON SCHEDULE EVERY 1 DAY STARTS '2017-08-03 22:00:00' 
DO BEGIN 

    -- INSERT INTO BACKUP TABLE 
    INSERT INTO regRawInformeAperturaLocalBACKUP (regRawInformeAperturaLocalId, rawInformeAperturaLocal, done, date, deviceId) 
    -- GET DATA 
    SELECT regRawInformeAperturaLocalId, rawInformeAperturaLocal, done, date, deviceId 
    FROM regRawInformeAperturaLocal 
    WHERE regRawInformeAperturaLocal.date < DATE_SUB(NOW(), INTERVAL 5 MONTH); 

    -- DELETE DATA FROM ORIGINAL TABLE 
    DELETE FROM regRawInformeAperturaLocal WHERE regRawInformeAperturaLocal.date < DATE_SUB(NOW(), INTERVAL 5 MONTH); 

END; 

[CODEのEDIT 1]

CREATE 
EVENT respaldoRegRawInformeAperturaLocal 
ON SCHEDULE EVERY 1 DAY STARTS '2017-08-03 22:00:00' 
DO BEGIN 

    -- INSERT INTO BACKUP TABLE 
    INSERT INTO regRawInformeAperturaLocalBACKUP (regRawInformeAperturaLocalId, rawInformeAperturaLocal, done, date, deviceId) 
    -- GET DATA 
    SELECT regRawInformeAperturaLocalId, rawInformeAperturaLocal, done, date, deviceId 
    FROM regRawInformeAperturaLocal 
    WHERE date < DATE_SUB(NOW(), INTERVAL 5 MONTH); 

    -- DELETE DATA FROM ORIGINAL TABLE 
    DELETE FROM regRawInformeAperturaLocal WHERE date < DATE_SUB(NOW(), INTERVAL 5 MONTH); 

END; 

[EDIT] これは、構文エラーメッセージです:

[のErr] 1064 - あなたのSQL構文でエラーが発生しています。私はそれを動作させる可能性がライン11

+1

エラーを投稿してください。 –

+0

更新しました。この文字列には次のように書かれています: "where regRawInformeAperturaLocal.date

+0

'regRawInformeAperturaLocal.date'はなぜ' date'ですか? –

答えて

1

で「」の近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください。

私はDELIMITERを追加し、syntaxisを変更する必要がありますEND;終了|

はとにかくここのコードです:

DELIMITER | 
CREATE 
    EVENT IF NOT EXISTS respaldoRegRawInformeAperturaLocal 
    ON SCHEDULE EVERY 1 DAY STARTS '2017-08-03 22:00:00' 
    DO BEGIN 

    -- INSERT INTO BACKUP TABLE 
    INSERT INTO regRawInformeAperturaLocalBACKUP (regRawInformeAperturaLocalId, rawInformeAperturaLocal, done, date, deviceId) 
    -- GET DATA 
    SELECT regRawInformeAperturaLocalId, rawInformeAperturaLocal, done, date, deviceId 
    FROM regRawInformeAperturaLocal 
    WHERE date < DATE_SUB(NOW(), INTERVAL 5 MONTH); 

    -- DELETE DATA FROM ORIGINAL TABLE 
    DELETE FROM regRawInformeAperturaLocal WHERE date < DATE_SUB(NOW(), INTERVAL 5 MONTH); 

END| 
DELIMITER ; 

今、私はそれをテストする必要があるが、私はそれは大丈夫だと思うので、私はそれを作成することができます。

[編集] イベントはチャームのように機能します。