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);
カウンターの繰り返しごとに番号付きの出力ファイルが必要です(これを行う方法の 1 つは、ストアド プロシージャを使用することです)。
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"
- このストアド プロシージャを実行する方法