利用mysql存储过程循环更新会员

BEGIN
	DECLARE done INT DEFAULT 0;  
	#字段
	DECLARE insertid INT;
	DECLARE name CHAR(50) CHARACTER SET utf8;
	DECLARE cellphone CHAR(50);
	
	DECLARE result INT DEFAULT 0;
	DECLARE insertable CHAR(50);
	DECLARE star INT DEFAULT (page-1)*size;
	DECLARE checkmember INT DEFAULT 0;
	DECLARE rs_cursor CURSOR FOR  select `member_id`, `member_name`, `member_phone` from base_member_info ORDER BY `member_id` ASC LIMIT star,size;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
	open rs_cursor;
	#set autocommit=0;
	set unique_checks=0;
	set foreign_key_checks=0;
	SET result = 0;
	cursor_loop:loop
		FETCH rs_cursor INTO insertid, name,cellphone;  
		if done = 1 then
			LEAVE cursor_loop;
		END IF;
		SET result = result + 1;
		SELECT count(`id`) INTO checkmember FROM member WHERE `id` = insertid LIMIT 1;
		SELECT insertable;
		SET insertable = insertid%10;
		IF checkmember <= 0 THEN
			if insertable = 0 THEN
			#DELAYED
			INSERT DELAYED INTO member_0(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 1 THEN
			INSERT DELAYED INTO member_1(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 2 THEN
			INSERT DELAYED INTO member_2(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 3 THEN
			INSERT DELAYED INTO member_3(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 4 THEN
			INSERT DELAYED INTO member_4(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 5 THEN
			INSERT DELAYED INTO member_5(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 6 THEN
			INSERT DELAYED INTO member_6(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 7 THEN
			INSERT DELAYED INTO member_7(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 8 THEN
			INSERT DELAYED INTO member_8(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			ELSEIF insertable = 9 THEN
			INSERT DELAYED INTO member_9(`id`,`user_name`,`member_name`,`cellphone`,`status`)VALUES(insertid,name,name,cellphone,'active');
			END IF;
		ELSE
			UPDATE member SET `user_name` = member_name,`member_name` = member_name,`cellphone` = cellphone WHERE `id` = insertid;
		END IF;
	SET done = 0;
	IF result%100 = 0 THEN
		COMMIT;
	END IF;
	end loop cursor_loop;
	close rs_cursor;  
	#set autocommit=1;
	set unique_checks=1;
	set foreign_key_checks=1;
END
INSERT DELAYED 延迟插入把插入语句放到mysql后台执行,快速返回
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值