2013-08-09 2 views
-1

Я создал этот триггер в IDE HeidiSQL для помощника IDE mysql, и он работал очень хорошо. Если я скопирую код создания, сгенерированный IDE, и попробую запустить его на phpmyadmin, я получаю синтаксическую ошибку SQL, которую я просто не могу понять, как ее исправить. Может кто-нибудь мне помочь?Ошибка синтаксиса SQL рядом с '' в строке 14

CREATE TRIGGER `teste` AFTER UPDATE ON `ilmug_virtuemart_products` FOR EACH ROW BEGIN 
    IF (NEW.origem_sync <> 0) THEN 
     INSERT INTO sincronizar (dataHora, 
           tipoMovimento, 
           entidade, 
           id, 
           version, 
           STATUS) 
         VALUES (CURRENT_TIMESTAMP(), 
        'update', 
        'virtuemart_products', 
        NEW.virtuemart_product_id, 
        NEW.version, 
        'pendente'); 
    END IF; 
END; 

ответ

0

У вас есть BEGIN заявление ... но END отсутствует


Так как вы отредактировали ваш вопрос, я тестировал: http://sqlfiddle.com/#!2/0ebbf
Согласно sqlfiddle, нет нет синтаксическая ошибка ...

+0

Это не проблема, я пробовал много разных типов синтаксиса. Моя проблема в том, что запрос выполняется в среде IDE, но не выполняется по команде или phpmyadmin. Я обновил запрос, повторю проверку и скажу, если у вас что-то не так. – Daniel

+0

@ Даниэль см. Мое редактирование. –

+0

Даже без синтаксической ошибки я все еще получаю этот erros на phpmyadmin: # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с '' по строке 14 – Daniel

0

Использование DELIMITER.

DELIMITER $$ 

CREATE TRIGGER `teste` AFTER UPDATE ON `ilmug_virtuemart_products` FOR EACH ROW 
BEGIN 
    IF (NEW.origem_sync <> 0) THEN 
     INSERT INTO sincronizar (dataHora, 
           tipoMovimento, 
           entidade, 
           id, 
           version, 
           STATUS) 
         VALUES (CURRENT_TIMESTAMP(), 
        'update', 
        'virtuemart_products', 
        NEW.virtuemart_product_id, 
        NEW.version, 
        'pendente'); 
    END IF; 
END$$ 

DELIMITER ; 
+0

Это сработало !!! Большое спасибо! – Daniel

+0

Тогда, возможно, вам стоит подумать о том, чтобы отметить ответ как принятый, а также правильный ответ на другие вопросы, которые вы задали. –

Смежные вопросы