当前位置: 首页 > 知识库问答 >
问题:

MariaDB程序phpmyadmin错误

黄英韶
2023-03-14

在PHPmyadmin sql框中创建存储过程时出现以下错误:

1064年的今天,您的SQL语法出现错误;请查看与您的MariaDB服务器版本对应的手册,以了解第1行“BEGIN DECLARE ref_id varchar(10)”附近使用的正确语法

CREATE PROCEDURE get_tree(IN id varchar)
 BEGIN
 DECLARE ref_id varchar(10);
 DECLARE userid varchar(10);
 SET userid = id;
 SET ref_id='';
 SELECT ref_id into ref_id 
 FROM user WHERE user_id=id ;
 create TEMPORARY  table IF NOT EXISTS temp_table as (select * from user where 1='');
 truncate table temp_table;
 WHILE ref_id <> '' DO
   insert into temp_table select * from user WHERE user_id=userid;
   SET userid = ref_id;
   SET ref_id='';
   SELECT ref_id into ref_id
   FROM user WHERE user_id=userid;
 END WHILE;
 select * from temp_table;
 END

共有2个答案

长孙德惠
2023-03-14

通过添加以下分隔符解决问题:

DELIMITER $$
CREATE PROCEDURE get_tree(IN id varchar(10)) 
BEGIN
 DECLARE ref_id varchar(10);
 DECLARE userid varchar(10);
 SET userid = id;
 SET ref_id='';
 SELECT ref_id into ref_id 
 FROM user WHERE user_id=id ;
 create TEMPORARY  table IF NOT EXISTS temp_table as (select * from user where 1='');
 truncate table temp_table;
 WHILE ref_id <> '' DO
   insert into temp_table select * from user WHERE user_id=userid;
   SET userid = ref_id;
   SET ref_id='';
   SELECT ref_id into ref_id
   FROM user WHERE user_id=userid;
 END WHILE;
 select * from temp_table;


END$$
DELIMITER ;
雍志新
2023-03-14

问题在于过程参数——如果没有长度,就不能使用varchar。应该是的

CREATE PROCEDURE get_tree(IN id varchar(10))
 BEGIN
 ...

(或者你想要的长度,但10似乎是一个合理的选择)。

 类似资料:
  • 问题内容: 我拼命试图在ubuntu 12.04 LTS的Linux 1.8.0的xampp上获得phpmyadmin访问权限。我知道这是一个普遍的问题,但是我在网络上尝试了许多线程,但仍然坚持下去。 Xampp似乎运行正常,本地主机起始页很好,包括在侧边栏中的phpmyadmin链接。当我点击该链接时,出现403错误: 禁止访问! 新的XAMPP安全概念: 仅在本地网络上可以访问请求的目录。 可

  • 我正在拼命尝试在xampp for linux 1.8上获取phpmyadmin访问权限。0用于ubuntu 12.04 LTS。我知道这是一个常见的问题,但我已经在网上尝试了许多线程,但我仍然无法继续下去。 Xampp似乎运行正常,localhost起始页良好,包括侧边栏中指向phpmyadmin的链接。当我点击该链接时,我得到一个403错误: 禁止进入! 新的XAMPP安全概念: 只能从本地网

  • 已安装phpmyadmin在apache 2 web服务器在linux和当我试图访问它我得到有趣的代码如下所列。 addJSON('list',PMA_RecentFavoriteTable::getInstance('recent'))- '; printf(u uuu('您正在使用演示服务器。您可以在此处执行任何操作,但''请不要更改root用户、debian sys maint用户和pma用

  • MariaDB程序是一个存储的程序,用来传递参数。它不像函数那样需要返回一个值(当然也不用返回)。 可以创建和删除像函数一样的过程。 1. 创建过程 可以像创建MariaDB中的函数一样创建过程。 语法: 参数说明 DEFINER:可选。 procedure_name:在MariaDB中分配给此过程的名称。 Parameter:传入过程的一个或多个参数。创建过程时,可以声明三种类型的参数: IN:

  • 主要内容:读者,前提条件,问题反馈MariaDB是一个基于MySQL关系数据库管理系统的社区项目(可以简单地理解为MySQL的社区版本的一个分支)。它是开源和关系数据库技术,这是MySQL数据库的一个很好的替代品。 此MariaDB教程包括MariaDB的所有主题,如mariaadb,功能,安装,heidisql,语法,数据类型,连接,数据库,创建数据库,选择数据库,表,crud操作,插入,限制,更新,删除 ,子句,运算符,聚合函

  • phpMyAdmin是一个管理数据库中的表和数据的第三方工具。 它是管理MySQL数据库的图形用户界面。 您可以手动创建表,导入和导出数据或通过它编辑行的值。 要访问phpMyAdmin,请单击phpMyAdmin链接,该链接可在cPanel Home的数据库部分下找到。 您将看到与此类似的仪表板。 在左侧窗格中,有一个数据库列表,可以使用这些数据库来查看每个数据库中的表。 在右侧窗格中,有数据库