Процедура Параметр проблема - Mysql 5.1 Ошибка SQL 1064 - PullRequest
0 голосов
/ 03 августа 2011

Следующее работает в MYSQL 5.5 windows , не работает в MYSQL 5.1, Ubuntu lucid

DELIMITER $$

CREATE PROCEDURE `queueup`( IN groupsize INT, OUT done INT)
BEGIN

    DECLARE room INT;
    SET room = -1;
    UPDATE queue SET status = 'PLACED', assigned_room = room WHERE status = 'WAITING' ORDER BY queue_position ASC LIMIT groupsize;
END $$

Ошибка SQL 1064:

У вас ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного использования синтаксиса около 'размера группы;

1 Ответ

1 голос
/ 03 августа 2011

В MySQL 5.5 предложение LIMIT может использоваться с переменными; в вашем случае 'groupsize' - это переменная.

С ссылка - В хранимых программах параметры LIMIT могут указываться с использованием целочисленных стандартных параметров или локальных переменных, начиная с MySQL 5.5.6.

...