用navicat创建mysql存储过程的示例,这个存储过程比较简单,利用了游标,循环,插入数据,更新数据等行为。代码如下:
BEGIN
DECLARE FNAME1 VARCHAR(50);
DECLARE FPATH1 VARCHAR(200) DEFAULT '0';
DECLARE FSIZE1 INT DEFAULT 0;
DECLARE FTIME1 VARCHAR(50) DEFAULT '0';
DECLARE FSTATUS1 VARCHAR(10);
DECLARE FTYPE1 VARCHAR(10);
DECLARE FNEWNAME1 VARCHAR(50);
DECLARE FEXT1 VARCHAR(20);
DECLARE FGENRE1 VARCHAR(10);
DECLARE UEMAIL1 VARCHAR(50);
DECLARE done INT DEFAULT FALSE;
DECLARE cur_file CURSOR FOR select fname,fpath,fsize,ftime,fstatus,ftype,fnewname,fext,fgenre,uemail from tmp_files where active_flag = 'N';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 打开游标
OPEN cur_file;
-- 遍历
read_loop: LOOP
FETCH cur_file INTO FNAME1,FPATH1,FSIZE1,FTIME1,FSTATUS1,FTYPE1,FNEWNAME1,FEXT1,FGENRE1,UEMAIL1;
IF done THEN
LEAVE read_loop;
END IF;
insert into files(fname,fpath,fsize,ftime,fstatus,ftype,fnewname,fext,fgenre,uemail) VALUES(FNAME1,FPATH1,FSIZE1,FTIME1,FSTATUS1,FTYPE1,FNEWNAME1,FEXT1,FGENRE1,UEMAIL1);
update tmp_files set active_flag = 'Y';
END LOOP;
CLOSE cur_file;
END
创建的过程:
1,在navicat里打开对应的数据库;
2,在函数那里,新建一个“过程”
3,in,out这里可以创建一些输入及输出的参数。
4,保存的时候,可能会提示错误,注意它的参数,默认没有标参数的长度,加上所有参数的长度即varchar(20)
5,保存,运行。
6,注意,定义的变量的字段最好不要和数据库里面的字段名相同,可能会引发错误。