2012-04-22 5 views
0

У меня есть эта процедура, работающая в dev, я пошел ее копировать в производство, и я получаю сообщение об ошибке «проверьте ваш синтаксис рядом ...» в строке «Обновление». Он сохраняет, если я вынимаю условие ограничения.Ошибка синтаксиса с префиксным предложением

как я уже сказал, это работает в Dev. Копирование и вставить структуру четкости, так что я знаю, что это идентично.

DELIMITER ;; 
CREATE DEFINER=`user`@`%` PROCEDURE `SQS_Get_Messages`(IN queue_requested INT, IN queue_limit INT) 
    SQL SECURITY INVOKER 
BEGIN 
    DECLARE my_uuid INT; 
    DECLARE fake INT; 
    DECLARE now DATETIME; 

    SELECT Get_Lock('message_get',10) INTO fake; 

    SELECT NOW() INTO now; 
    SELECT UNIX_TIMESTAMP()+mod(UUID_SHORT(),1000) INTO my_uuid; 

    UPDATE sqs SET `status`= my_uuid, `started_timestamp` = now WHERE `status` = 0 and `queue` = queue_requested LIMIT queue_limit; 

    SELECT RELEASE_LOCK('message_get') INTO fake; 
    SELECT `id`,`body`,`status` from sqs WHERE `status` = my_uuid; 

END;; 
DELIMITER ; 

ответ

1

Если он работает в разработчика, но терпит неудачу с копирования и вставки в производстве у вас есть несоответствие версии между вашим сервером dev и вашим производственным сервером, или вы не смогли скопировать и вставить правильно. Нет никаких других объяснений, которые я могу видеть.

+0

10-4. Спасибо, что посмотрели. –

0

вот оно, новая база данных работает немного устаревшей версии MySQL. Спасибо, Кен. (У меня недостаточно «очков», чтобы должным образом вознаградить вас, но у вас есть моя благодарность. :-))

+0

Спасибо. Я попытался проголосовать за него, но у меня нет «очков». –

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