关于mysql 的存储过程

来源:百度知道 编辑:UC知道 时间:2024/05/30 03:27:33
编写存储过程的时候 分号可不可以用
一用分号 就默认命令已经结束
该怎么办
比如
我用declare c int ;
一写到这里 就结束了
顺便问一下 mysql 是不是不支持缩写 总是提示int 是一个错误?
难道没人知道吗

mysql> delimiter //
这个作用是把;变成//,以后的语句遇到//就结束了,遇到;不结束,下面就可以按你的想法写了

mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM t;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ; 这里把双引号改回来

声明参数要在说明是 输入还是输出函数 in\out

给函数变量赋值用
set @a=10;

例子:

drop procedure if exists pr_param_in;

create procedure pr_param_in
(
in id int -- in 类型的 MySQL 存储过程参数
)
begin
if (id is not null) then
set id = id + 1;
end if;

select id as id_inner;
end;
set @id = 10;

call pr_param_in(@id);

select @id as id_out;
mysql> call pr_param_in(@id);

呵呵,没看到...
BEGIN
/*取上次计算的时间*/
select @count_time=max(cast(nvc_accounttime as datetime)) from stat_day_photo;
/*设置计算开始时间*/
if @count_t