文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>mysq写存储过程中需要注意的地方

mysq写存储过程中需要注意的地方

时间:2011-01-20  来源:dodohua

第一 mysql存储过程跟之前写SqlServer 2005 的存储过程有点区别;

第二,用的mysql第三方企业管理器 SQLyogEnt.exe 调试的时候,写存储过程和一般的查询语句要分开的,我是后来才意识到的,气得要命(可能也是用SqlServer 2005企业管理器的编辑器的习惯导致的)。 废话少说,写存储过程,要注意如下几点:

第一 要定义DELIMITER //,意思是用//作为一段语句的结束符(这个很重要,我写的存储过程语法一点也没错,但是,就是通不过,原来分号:;分隔符是通知MySQL客户端已经输入完成的符号,而我的存储过程里边很多都有分号;结果运行的时候,就是把我一段存储过程分成很多段执行)

第二 如果你想我一样“不幸”选择了第三方mysql客户端SQLyogEnt.exe ,一定要在数据库目录里边的存储过程右键选择新建存储过程,然后在右边弹出的窗口里键入你的存储过程语句,在普通查询分析器输入无效,这是惨痛教训

第三,如果存储过程的参数如果是输入中文的话,要在定义存储过程的后面加上character set gbk这个编码,不然调用存储过程使用中文参数的时候会出错,如:

 

CREATE  PROCEDURE CountPro(OUT a_out INT,in b_date date, in unit_name varchar(45) character set gbk)

第四,如果你的存储过程里边需要模糊查询,用到 like '%内容%' 不要在select 语句的where后边写'%';定义一个参数,用: set wherestr = "'%"+wherestr+"%'";拼接语句第五,最后要还原结束符:DELIMITER ; 为;作为语句的结束符

排行榜 更多 +
无限Fps

无限Fps

飞行射击 下载
幸存者时间僵尸

幸存者时间僵尸

飞行射击 下载
金属兄弟Metal Brother

金属兄弟Metal Brother

冒险解谜 下载