我正在尝试实现一个简单的计数器,它在 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 DO BEGIN SELECT TableA.ColumnA INTO OUTFILE CONCAT('OUT'' at line 4"
- 如何执行这个存储过程?