我是mysql while语句的新手,在终端上执行这行mysql代码效果很好.我在mysql shell中使用了"sql的源路径"命令.
DELIMITER //
CREATE PROCEDURE basic_while()
BEGIN
SET @stopval := 5;
SET @counter := 1;
WHILE @counter <= @stopval DO
SELECT @counter;
SET @counter := @counter + 1;
END WHILE;
END//
DELIMITER ;
CALL basic_while();
输出:
+----------+
| @counter |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 4 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 5 |
+----------+
1 row in set (0.00 sec)
现在的问题是,在我注释掉select语句并执行它之后,mysql给了我与上面相同的输出,以及相关的错误.
-- SELECT @counter;
注释掉后的输出:
ERROR 1304 (42000): PROCEDURE basic_while already exists
+----------+
| @counter |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 4 |
+----------+
1 row in set (0.00 sec)
+----------+
| @counter |
+----------+
| 5 |
+----------+
如何解决这个问题?