Я пытаюсь реализовать простой счетчик , который передается в качестве параметра в нескольких инструкциях в запросе SQL (см. Ниже).У меня есть следующая тестовая среда
CREATE TABLE `test`.`TableA` (
`ColumnA` INT( 3 ) NOT NULL ,
`ColumnB` INT( 5 ) NOT NULL
) ENGINE = MYISAM ;
ALTER TABLE `TableA` ADD INDEX ( `ColumnA` )
INSERT INTO `TableA` (`ColumnA`, `ColumnB`) VALUES
(2, 4654), (2, 223), (5, 12), (4, 32), (3, 23), (5, 21), (1, 2), (2, 2), (4, 2), (5, 1);
Я хочу пронумерованный выходной файл для каждой итерации счетчика (и AFAIK один из способов сделать это - использовать хранимую процедуру)
CREATE PROCEDURE dowhile()
BEGIN
DECLARE CONT INT DEFAULT 5
WHILE CONT > 1 DO
BEGIN
SELECT TableA.ColumnB
INTO OUTFILE CONCAT('OUT', CONT)
FROM TableA
WHERE TableA.ColumnA = CONT
SET CONT = CONT - 1
END
END WHILE
END;
- Когда я пытаюсь выполнить, у меня возникает синтаксическая ошибка, но я не могу понять, в чем проблема: "# 1064 - у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, дляправильный синтаксис для использования рядом с 'WHILE CONT> 1 НАЧАТЬ ВЫБОР TableA.ColumnA INTO OUTFILE CONCAT (' OUT '' в строке 4 "
- Как выполнить эту хранимую процедуру?