Синтаксис триггера MySQL? Что не так с этим? - PullRequest
0 голосов
/ 22 декабря 2011

Привет всем. Я пытаюсь воссоздать триггер. Я сделал триггер show create и скопировал оригинальный sql;Теперь, когда я запускаю его, я получаю синтаксическую ошибку.??Любая идея

 CREATE DEFINER=`root`@`localhost` TRIGGER    `update_cached_tables_for_product_insert` AFTER INSERT ON `Product` FOR EACH ROW BEGIN INSERT INTO ProductOffercount (product_id, num_offers) VALUES (NEW.id, 0); END

1 Ответ

0 голосов
/ 22 декабря 2011

Mysql обрабатывает ; после вашего запроса (который является частью определения триггера) как конец всего оператора.Таким образом, вы получаете синтаксическую ошибку.

Вам необходимо переопределить разделитель перед предложением CREATE TRIGGER:

delimiter |

CREATE DEFINER=`root`@`localhost`
TRIGGER `update_cached_tables_for_product_insert` AFTER INSERT ON `Product`
    FOR EACH ROW BEGIN

        INSERT INTO ProductOffercount (product_id, num_offers) VALUES (NEW.id, 0);

    END;
|

delimiter ;

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...