Это хранимая процедура, которая работала в более ранней версии mysql.Теперь у меня Mysql 5.5.19.0, и я не могу создать хранимую процедуру, которая выглядит следующим образом
DELIMITER $$
USE `XXX`$$
DROP PROCEDURE IF EXISTS `current_to_prev`$$
CREATE DEFINER=`user`@`localhost` PROCEDURE `current_to_prev`(
IN _USERNAME VARCHAR(45),
IN _FILENAME VARCHAR(45),
IN _TYPE INT
)
BEGIN
DECLARE _uid INT;
DECLARE _fdata BLOB;
DECLARE _fname VARCHAR(45);
DECLARE _type VARCHAR(45);
SET _uid = (SELECT userid FROM USER WHERE username = _USERNAME);
SET _fdata = (SELECT FileData FROM userfiles_current WHERE userid = _uid AND filename = _FILENAME);
SET _fname = (SELECT FileName FROM userfiles_current WHERE userid = _uid AND filename = _FILENAME);
SET _type = (SELECT TYPE FROM userfiles_current WHERE userid = _uid AND TYPE = _TYPE);
UPDATE userfiles_prev SET FileData = _fdata, FileName = _fname, TYPE = _type WHERE userid = _uid AND filename = _FILENAME;
END$$
DELIMITER ;
Я получаю следующую ошибку:
Query : CREATE DEFINER=<code>user
@ localhost
PROCEDURE current_to_prev
(В _USERNAME VARCHAR (45), В _FILENAME VARCHAR (45), В _TYPE INT ...
Код ошибки: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQLдля правильного синтаксиса использовать рядом с _FILENAME VARCHAR (45), IN _TYPE INT) BEGIN DECLARE _uid INT;ОБЪЯВЛЯЙТЕ _fdata B 'в строке 3
Как видите, MySQL не может принимать переменную BLOB.Как я могу решить эту проблему?
Заранее спасибо!