2017-11-13 4 views
0

MySqlでこのトリガーを作成すると狂ってしまいます... エラーが見つかりましたか? : - として括弧で囲まれる必要があるis_presentセットの一部を選択Mysqlの複数のアクションでエラー1064が発生する

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

あなたのバッククォートとランダムビット(私は彼らが必要とされていないそれらを削除します)とし、ブラケットを温存ビットされているように見えます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 ; 
関連する問題