MySQL存储过程编写

我想把一个数据导入另外一个数据表,所以我用MySQL在上面实现存储过程.发现和SQL SERVER还是有区别的.具体写法如下:

 

drop procedure IF EXISTS test_proc;
delimiter //
create procedure test_proc()
begin
	-- 声明一个标志done, 用来判断游标是否遍历完成
	DECLARE done INT DEFAULT 0;


    
declare _col1 varchar(500) DEFAULT NULL; 
declare _col2 varchar(500) DEFAULT NULL;
declare _col3 varchar(500) DEFAULT NULL;
declare _col4 varchar(500) DEFAULT NULL;
declare _col5 varchar(500) DEFAULT NULL;

	-- 声明游标对应的 SQL 语句
	DECLARE cur CURSOR FOR
		select `COL 5`,`COL 4`,`COL 2`,`COL 1`,`COL 3` from `table 8`;

	-- 在游标循环到最后会将 done 设置为 1
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

	-- 执行查询
	open cur;
	-- 遍历游标每一行
	REPEAT
		-- 把一行的信息存放在对应的变量中
		 FETCH cur into _col5, _col4, _col2,_col1,_col3; -- 取数据
		if not done then
			
insert into `aunt_shop` (`cShopAddr`,`cShopContact`,`cShopDetail`,`cShopName`,`cShopPhone`)values ( _col5,_col4,_col2,_col1,_col3);

		end if;
 	UNTIL done END REPEAT;
	CLOSE cur;
end
//
delimiter ;

-- 执行存储过程
call test_proc();


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值