开始Mysql(关于存储过程)3

涉及到数据库不用存储过程肯定是不行的 下面简单写2个存储过程 接着前面的数据库

 1 不带输出参数的  (添加用户)

drop procedure if exists proc_add;
create procedure proc_add(uid varchar(50),pwd varchar(20),name varchar(20))
begin
insert into T_user (U_uid,U_pwd,U_name) values(uid,pwd,name);
end;
call proc_add(
'abcd','123','用户1');
select * from T_user;


 注意几点:

变量不需要加@

存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”

不用加as关键字

存储过程中包含多条 MySQL 语句,则需要 begin end 关键字。

存储过程中的每条语句的末尾,都要加上分号 “;”

不能在 MySQL 存储过程中使用 “return” 关键字。

 2 带输出参数的存储过程 (用户登陆)

drop procedure if exists proc_login;
create procedure proc_login(
uid 
varchar(50),
pwd 
varchar(20),
out back 
int   -- 0失败 1成功
)
begin
select U_uid  from t_user where U_uid=uid and U_pwd=pwd;
set @rowcount=found_rows();
if (@rowcount>0then
set back=1;
else
set back=0;
end if;
end;
call proc_login(
'admin','123',@b);
select @b as bbb;

 

返回select操作的行数用found_rows()函数;insert、update、delete等操作影响的行数用row_count()函数。

 

posted @ 2009-12-22 15:27  melody&bobo  阅读(196)  评论(0编辑  收藏  举报