CREATE PROCEDURE上的Sql语法错误

时间:2017-06-02 18:17:01

标签: mysql

在phpMyAdmin上使用mysql

SQL

drop PROCEDURE if EXISTS mi;

CREATE PROCEDURE mi()  //<-- line 3
BEGIN
  INSERT INTO User ( `name` , `password` ) VALUES ('value1', 'value2');
  SET out_param = LAST_INSERT_ID();
END

CALL mi();

&#39; drop&#39;用于多重测试

我们有User个表id primary keyname varcharpassword varchar

错误

  

1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以获得在&#39;&#39;附近使用的正确语法。在第3行

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

默认情况下,mysql本身将分号识别为语句分隔符,因此必须临时重新定义分隔符以使mysql将整个存储的程序定义传递给服务器。要重新定义mysql分隔符,请使用delimiter命令。

您可以更详细地了解这一点create procedure

在创建语句和&#34; //&#34;之前添加&#34;分隔符//&#34;在结束语句之后,为了执行您的程序。您也可以使用任何其他分隔符。

答案 1 :(得分:0)

在phpMyAdmin中,您可以在SQL页面上设置分隔符,在底部附近,在Go页面的同一区域有一行与Go按钮。将分隔符更改为任何内容($$是常见的分隔符),然后将其添加到脚本的末尾。