在MySQL中不能直接创建存储过程和函数 ,之类的对象.
必须将这些对象放在一个 空间中。
delimiter $$
$$ delimiter ;
否则会报错。
=======================================mysql 存储过程
存储过程: MySQL 中的sp 有输入参数和输出参数 ,不能有返回直
MySQL 的sp 参数分为三种类型.
out :输出参数
in:输入参数,默认是输入参数。
input:该参数比较特殊 ,同时拥有输出和输入参数的功能 。当有需要把一个输入参数 传入sp内部
然后 在sp内部更改该参数值 在输出的时候 ,参数就嫩发挥其功能了 。
下面是一些实例。
======in , out
delimiter $$
create procedure sp_in_out(out t int, in p int)
begin
set t=p;
end;
$$ delimiter ;
set @1=9;
call sp_in_out(@1,10);
select @1;
执行结果为10;
=== inout
delimiter $$
create proceure sp_inout(inout p int )
begin
set p=7;
end ;
$$ delimiter ;
set @2 =10;
call sp_inout(@2);
select @2 ;
执行结果为7
===================================MySQL 函数
MySQL中的函数不想SQLServer中的那样 ,类型多样
在MySQL中只有一种类型函数(sqlserver 中有三种类型的函数)
我把这种函数类型定义为标量值函数(在sqlserver 中分为:标量值函数,表值函数,多语句表值函数)
所以对MySQL而已 ,函数的语法相当额简单。
值得注意的是 ,
1.mysql 函数只有输入参数 ,当然这个参数也不是必须的。
2.MySQL只能返回一个具体的值 ,这就是我为什么把他定义为标量值函数的原因,
下面看一下具体的语法
delimiter $$
create function sp_function()
returns int
begin
return 1;
end;
$$ delimiter ;