MySQL使用SQLyog工具创建存储过程的注意事项。
1、注意事项一
如果使用SQLyog,直接创建存储过程,如下:
-- 创建存储过程
CREATE PROCEDURE proc_search_user(IN page_index INT,IN page_size INT, OUT total_count INT, OUT total_page INT)
BEGIN
SELECT * FROM tb_user;
END;
提示错误:
错误代码: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
错误原因:
在MySQL客户端中分隔符默认是分号(;),其实就是告诉MySQL解释器,该段命令是否已经结束了,MySQL是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。
解决方法:
使用delimiter语句,将默认的“;”,修改成“$$”,执行语句如下:
DELIMITER $$
2、注意事项二
如果我们执行上面的“DELIMITER $$”语句,SQLyog又要提示另外一个错误。
提示错误:
没有执行查询。请在 SQL 窗口中输入查询或将光标放在一个查询上。
3、解决方法
使用SQLyog工具正确的创建存储过程。
(1)选择数据库 右键 → 选择“创/建” → 点击“存储过程”,随后弹出输入存储过程的名称。
(2)编写创建存储过程脚本。
-- 将结束标志符更改为$$
DELIMITER $$
-- 创建存储过程
CREATE PROCEDURE proc_search_user()
BEGIN
SELECT * FROM tb_user;
END$$
-- 将结束标志符更改回分号
DELIMITER ;
这样就可以在SQLyog工具中成功创建存储过程了。