mysql 简单程序示例不起作用,为什么?

ubby3x7f  于 2022-11-28  发布在  Mysql
关注(0)|答案(1)|浏览(112)

这个程序不起作用。请告诉我是怎么回事?

drop procedure if exists while_do;
delimiter $$
 
CREATE PROCEDURE `while_do`()
BEGIN
  SET @p=0;
  WHILE @p<10 DO
    SET @p = @p + 1;
  END WHILE;
  SELECT @p;
END $$
 
DELIMITER ;  
call while_do();

错误:

1064 -您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以了解在“CREATE PROCEDURE whilew_do()开始”附近使用的正确语法 在p=0时设置; 当p〈10时 第1行的SE'

66bbxpm5

66bbxpm51#

您的查询可以在phpMyAdmin(PMA)中运行,但需要进行一些调整。
我假设SQL已粘贴到SQL选项卡上?
需要更改的是删除带有delimiter的行,因为在SQL文本区域下面有一个用于指定分隔符的输入:

1.然后将查询修改为如下所示:

drop procedure if exists while_do;
$$

CREATE PROCEDURE `while_do`()
BEGIN
  SET @p=0;
  WHILE @p<10 DO
    SET @p = @p + 1;
  END WHILE;
  SELECT @p;
END;
$$

call while_do();
$$

1.将输入中的分隔符更改为$$

1.然后运行查询,输出将如下所示:

或者,另一种在PMA中创建例程的方法是使用Routines标签,完全不需要使用分隔符:

例程列表下面是:


指令集
点击Add routine链接将打开一个弹出表单。按下图所示填写,放下参数列表:

然后,单击Go按钮后,将列出新例程:


指令集
我的版本信息:

相关问题