mysql 存储过程

来源:互联网 发布:绝对编程和增量编程 编辑:程序博客网 时间:2024/06/05 03:42

(1)MySQL存储过程是在“命令提示符”下创建的,所以首先应该打开“命令提示符”窗口。
(2)进入“命令提示符”窗口后,首先应该登录MySQL数据库服务器,在“命令提示符”下输入如下命令:

mysql –u用户名 –p用户密码

(3)更改语句结束符号,本实例将语句结束符更改为“//”。代码如下:

delimiter //

(4)创建存储过程前应首先选择某个数据库。代码如下:

use 数据库名

(5)创建存储过程。
(6)通过call语句调用存储过程。

1:
create database shen;
use shen;
delimiter //
drop table if exists test//
create table test(
id int(11) null
)//


/**最简单的一个存储过程**/
drop procedure if exists sp//
create procedure sp() select 1//
call sp()//

/**带输入参数的存储过程**/
drop procedure if exists sp1//
create procedure sp1(in p int)
comment 'insert into a int value'
begin
declare v1 int;
set v1 = p;
insert into test(id) values(v1);
end
//
call sp1(1)//
select * from test//


/**带输出参数的存储过程**/
drop procedure if exists sp2//
create procedure sp2(out p int)
deterministic
begin
select max(id) into p from test;
end
//
call sp2(@pv)//
select @pv//


/**带输入和输出参数的存储过程**/
drop procedure if exists sp3//
create procedure sp3(in p1 int,out p2 int)
begin
if p1 = 1 then
set @v = 10
else
set @v = 20
end if;
insert into test(id) values(@v);
select max(id) into p2 from test;
end
//
call sp3(1,@ret)//
select @ret//


/**既做输入又做输出参数的存储过程**/
drop procedure if exists sp4//
create procedure sp4(inout p4 int)
begin
if p4 = 4 then
set @pg = 400;
else
set @pg = 500
end if
select @pg;
end//
call sp4(@pp)//
set @pp = 4//
call sp4(@pp)/


show procedure status//
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
show create procedure sp_name
显示某一个存储过程的详细信息
drop procedure proc_name
删除存储过程

0 0
原创粉丝点击