我是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 |
    +----------+

如何解决这个问题?

推荐答案

您需要使用删除现有过程.这是因为它执行上一个过程

drop procedure if exists procedurename;

我希望这能解决你的问题.

Mysql相关问答推荐

MySQL RDS ALTER TABLE ENUM短暂中断了我的数据库连接

当日期附加到MySQL后,如何按日期说明排序?

插入时发生日期时间字段溢出错误

Eloquent:通过国外模型得到平均分

获取每个参数的记录,不重复

如何用sql找出两次之间的差异

如何将多个字符串插入变量

Group By 查询运行速度太慢而无法正常运行

检索按键列值分组的最新日期 (MySql)

一次更新mysql中的多个列

当用它的别名替换 (MAX(s.salary) - MIN(s.salary) 它将不起作用.. 为什么?

如何替换 SELECT 查询中重复记录的列?

将 wordpress 自定义字段转换为单个数组

处理 Visits 表中数百万行的最佳方法是什么?

如何过滤表格,以便它显示最新的数据?

MySQL 视图

MySQL - 使一对值唯一

mysql错误'TYPE = MyISAM'

为什么 GRANT 在 MySQL 中不起作用?

如何在执行 sql 脚本时 echo 打印语句