mysql 存储过程使用注意点

1.mysql 编写存储过程传参,参数要给定大小 ,如 varchar 类型的,传参是
如下 格式:
CREATE PROCEDURE  name( IN  params  VARCHAR(255)  )

BEGIN 

方法体
END


2. 参数的名字 尽量不要和 数据库表字段的名字一样,或者给表加一个别名

3.最好是把传的参数,在方法体里声明接收,这样数据库就不会参数和表字段混用了

4.声明参数的3个方法 :

a. 设置全局变量

set @a='一个新变量';

b.在函数和储存过程中使用的变量declear

declear a int unsigned default 1;

这种变量需要设置变量类型 而且只存在在 begin..end 这段之内

c . select .. into..  直接将表内内容赋值到指定变量当中

select name,bid into @a,@b from bank limit 1;

要注意一点就是变量名不能和字段名一致

 

 

存储过程通俗的解释:

存储过程将一段通用的操作封装在一起 这样再不同平台都可以公用了

储存过程没有返回值,而且不能sql语句调用,只能是call调用,而且不返回结果集,执行就执行了

要注意的是在储存过程中进行sql语句要用到 ; 这个系统默认结束符 要重新设置成别的,不然在写过程的一半系统就错认程序为终止继而报错

改变结束命令符为$

delimiter$+回车 或者简写成 \d $+回车

 

显示所有存储过程

show procedure status;

删除指定存储过程

drop procedure 过程名;

 

示例:

\d $
create procedure yanshi(in arg tinyint)
  begin
 declare age tinyint default 0;
  set age=arg;
 if age<20 then
 select '小于20的数';
  elseif age>20 then
  select '大于20的数';
  end if;
 end
 $
//调用过程
 set @num=12$
 call yanshi(@num)$
 call yanshi(21)$

你可能感兴趣的:(mysql 存储过程使用注意点)