2016-06-15 37 views
0

MySQL事件調度程序是這樣的:如何在mysql事件調度器中運行兩個更新查詢?

CREATE EVENT update_status 
    ON SCHEDULE EVERY 2 MINUTE 
    DO 
    BEGIN 
    UPDATE customer_group 
    SET is_status = 0 
    WHERE CURRENT_TIMESTAMP BETWEEN start_date AND end_date; 
    UPDATE customer_group 
    SET is_status = 1 
    WHERE CURRENT_TIMESTAMP NOT BETWEEN start_date AND end_date; 
    END 

當我運行該腳本,也存在着錯誤這樣的:

Error Code: 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 7 

解決我的問題的任何解決方案?

非常感謝您

+1

這就是爲什麼我在前一個問題中將其包裹在分隔符中。 – Drew

+0

@德魯,非常感謝 –

回答

1

試試這個:

DELIMITER $$ 
CREATE EVENT update_status 
ON SCHEDULE 
    EVERY 2 MINUTE 
DO 
BEGIN 
    UPDATE 
     customer_group  
    SET 
     is_status = 0  
    WHERE 
     CURRENT_TIMESTAMP BETWEEN start_date AND end_date;  
    UPDATE 
     customer_group  
    SET 
     is_status = 1  
    WHERE 
     CURRENT_TIMESTAMP NOT BETWEEN start_date AND end_date; 
END $$ 
DELIMITER ; 
+0

非常感謝你 –

+0

我需要你的幫助。看看這裏:http://stackoverflow.com/questions/38175735/how-to-get-data-in-function-extend-controller –

0

您可以在單個更新做你的上述操作(更新2)本身

使用下面的腳本

CREATE EVENT update_status 
ON SCHEDULE EVERY 2 MINUTE 
DO 
UPDATE customer_group 
SET is_status = (select case when CURRENT_TIMESTAMP BETWEEN start_date AND end_date then 0 else 1 end from customer_group limit 1); 

欲瞭解更多詳情,請使用此http://www.mysqltutorial.org/mysql-triggers/working-mysql-scheduled-event/

+0

這似乎不工作 –