Mysql 动态插入数据,储存过程

本文介绍使用MySQL存储过程进行动态批量数据插入的方法,包括创建和调用存储过程的详细步骤,以及通过变量控制循环插入数据的技巧。
方法一
-- mysql动态批量插入数据,储存过程
-- 如果存在此存储过程则删掉
DROP PROCEDURE IF EXISTS proc_initData;
DELIMITER $
CREATE PROCEDURE proc_initData()
BEGIN
    DECLARE i INT DEFAULT 1;
		DECLARE id INT DEFAULT 68000;
		DECLARE orderno BIGINT DEFAULT 100020001012;
    WHILE i<=10000 DO
				SET id = id+1;
				SET orderno = orderno+1;
        INSERT INTO `delivery_warning_detail` VALUES(id , '2018-8-10', NULL, orderno, 'US', 'CN06', 'USSFOY', 'LAX', 'LAX03S', 'LAX03S01D', 'EE', 1, 3.000, 3.000, '92705', 0, NULL, NULL, NULL, NULL, '2018-7-23 13:50:00', NULL, NULL, NULL, NULL, NULL, NULL, '2018-7-23 02:10:00', NULL, NULL, '82h38m', 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 0, '10.202.72.89', NULL, '2018-7-26 17:48:54', '2018-7-23 11:26:38');
				SET i = i+1;
				SELECT concat('运单号', orderno);/*输出执行的运单号*/
    END WHILE;
END $
CALL proc_initData();


方法二

DELIMITER $
CREATE PROCEDURE usertest( fieldstr VARCHAR(200), tablename VARCHAR(200), orderstr VARCHAR(100), ordersort INT)
BEGIN
	DECLARE sort VARCHAR(20);
	DECLARE tmpsql VARCHAR(500);
	SET sort = '';
	IF ordersort=0 THEN
		SET sort='asc';
	ELSE
		SET sort='desc';
	END IF;
	SET @sqlcmd = CONCAT('select ' , fieldstr , ' from ' , tablename , ' order by ' , orderstr , ' ' , sort);
	PREPARE tmpsql FROM @sqlcmd;		
	SELECT @sqlcmd;	/*输出执行的sql语句*/
	EXECUTE tmpsql;
	DEALLOCATE PREPARE tmpsql;	
END $

-- ---------------------------------------------- --

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

〆WangBenYan゜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值