用navicat创建mysql存储过程的示例

[mysql] 2024-03-28 圈点704

摘要:用navicat创建mysql存储过程的示例,这个存储过程比较简单,利用了游标,循环,插入数据,更新数据等行为。代码如下:

用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,注意,定义的变量的字段最好不要和数据库里面的字段名相同,可能会引发错误。

存储过程  

感谢反馈,已提交成功,审核后即会显示