2015-04-02 26 views
1

我試圖建立一個MySQL的事件,這是我使用的語法:找不出有什麼不對這個MySQL事件語法

CREATE EVENT test 
    ON SCHEDULE AT FROM_UNIXTIME(1428005286) 
    DO 
     BEGIN 
     UPDATE blog_posts SET status = 'published' WHERE id = 5; 
     END 

當我節點運行它。 js(使用mySQL適配器,在Sails.js下),我沒有遇到任何錯誤,但事件沒有被創建。當我直接通過phpMyAdmin的運行它,我得到:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 

我也嘗試添加一個分號結束,使它END;,並刪除所有分號,並返回一個稍微類似的錯誤:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 6 

我不知道爲什麼會發生這種情況。任何幫助表示讚賞。謝謝。

+0

你試圖刪除的開始並結束並只是有更新?我不認爲你需要開始和結束一個班輪 – BK435 2015-04-02 19:47:14

回答

0

你可能需要開始:創建DEFINER = root @localhost ...
此外,由於這是一個班輪,你不需要BEGIN..END

+0

刪除BEGIN ... END塊的竅門。如果它不止一個語句,它不會返回語法錯誤?另外,在這裏創建DEFINER的目的是什麼?謝謝。 – Lester 2015-04-02 20:07:04

+0

如果權限不是猶太教徒,你將需要DEFINER。開始/結束用於多個語句,是的。 – 2015-04-02 20:13:41