Mysql多动作触发器上的错误1064

时间:2017-11-13 18:23:50

标签: mysql triggers mysql-error-1064

我疯了在MySql中创建这个触发器... 你能找到错误吗? :

max_y = GPVAL_DATA_Y_MAX
set label 2 gprintf("Maximum = %g", max_x) at 5, max_y-0.02

1 个答案:

答案 0 :(得分:0)

你的反叛似乎有点随意(我会删除它们并不是必需的)并且有点保留括号 - 集合is_present的选择部分需要被括起来,价值观也是如此insert语句中的子句。是的,所有陈述都需要终止; 这段代码的语法对我来说。

DELIMITER $$
CREATE TRIGGER Gestione_qty_mov_magazzino AFTER
INSERT ON dj3u9lk_pods_flusso_merci_magazzi FOR EACH ROW
BEGIN  
DECLARE is_present INT default 0;
SET is_present = (
        SELECT COUNT(dj3u9lk_pods_archivio_magazzino.codice_articolo) 
        FROM dj3u9lk_pods_archivio_magazzino 
        WHERE dj3u9lk_pods_archivio_magazzino.codice_articolo = NEW.codice_articolo
        ) ;
IF is_present > 0 THEN
        UPDATE dj3u9lk_pods_archivio_magazzino
        SET dj3u9lk_pods_archivio_magazzino.quantita_presente = dj3u9lk_pods_archivio_magazzino.quantita_presente + NEW.quantita
        WHERE dj3u9lk_pods_archivio_magazzino.codice_articolo = NEW.codice_articolo AND NEW.tipo_movimentazione = 0
    ;
ELSE
        INSERT INTO dj3u9lk_pods_archivio_magazzino (codice_articolo) 
        VALUES (NEW.codice_articolo)      ;
END if;

END $$
DELIMITER ;