2017-11-13 24 views
0

MySql에서이 트리거를 생성하는 데 미쳐 버릴 것입니다 ... 오류를 찾을 수 있습니까? :오류 1064 on Mysql 여러 작업 트리거

당신은 당신의 역 따옴표에 조금 임의 된 것 같다
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 

END$$ 
DELIMITER ; 
+0

모든 MySQL 문에는 일반적으로 터미네이터가 있어야합니다. –

+0

알아요,하지만 종결자를 삽입하면; 인터페이스에서 "예기치 않은 문자"를 표시하고 SQL 문을 제출하려고하면 같은 1064 오류를 다시 돌려줍니다 ... 다른 아이디어? –

답변

0

(나는 그들에게 그들이 필요하지 않습니다를 제거 것)과와 브라케팅으로 살려주는 비트 -로 괄호 될 필요가 is_present 세트의 선택 부분 insert 문에서 values ​​절을 수행합니다. 그리고 예문은 모두 끝내야합니다. 나를위한이 코드 구문.

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 ;