Mysql 查询结果列表作为参数循环生成插入

新建插入语句的带参存储过程

DROP PROCEDURE IF EXISTS _marketjson;
DELIMITER //
CREATE PROCEDURE _marketjson(IN refid VARCHAR(32)) 
BEGIN
	## 插入数据前判断是否已存在
	IF NOT EXISTS (SELECT * FROM column WHERE LOCATION_REFID = refid and DISPLAY_TITLE = '身份证号') THEN 
		INSERT INTO `column` (`REFID`,`LOCATION_REFID`,`DISPLAY_TITLE`)
		VALUES
			( MD5(RAND() * 10000),refid,'身份证号') ;
	END IF;	
END//  
DELIMITER ; 

游标遍历查询结果并操作数据库

DROP PROCEDURE IF EXISTS insert_extra_column;
DELIMITER //
CREATE PROCEDURE insert_extra_column() 
BEGIN
	##定义判断变量
	DECLARE _flag varchar(50);
	## 定义查询变量
	DECLARE _cur CURSOR FOR 
		SELECT `REFID` FROM person;
	### 循环赋初始值
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET _flag=NULL;
	### 打开
	OPEN _cur;
	## 赋值
	FETCH _cur INTO _flag;
	###循环判断
	WHILE (_flag is not null ) DO
		CALL _marketjson(_flag);
		## 赋值下一个游标
		FETCH _cur INTO _flag;
	END WHILE;
	## 关闭
	CLOSE _cur; 
END//  
DELIMITER ; 
CALL insert_extra_column();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值