MySQL 存储过程 批量插入

在此之前,无论工作还是业余时间写代码,使用的都是SQL SERVER数据库,MySQL数据库只是在最初Learn数据库的时候顺便看了一下,最多也就是个人网站使用,但都是简单的CRUD,不涉及MySQL的高级操作。

今天想测试一下MySQL查询大数据的时候性能,以及Learn优化,但需要批处理插入几十几百万条数据,搜索了一下发现不能像SQL SERVER 那样直接写个循环批量插入,需要写一个存储过程,然后再调用存储过程来实现。折腾了一个小时,终于写出来了,不熟悉MySQL语法的后果。。

存储过程编写:

#如果存在相同名称的存储过程,删除

DROP PROCEDURE IF EXISTS sp_batchinsert;

#参数列表和SQL SERVER不同,这个格式
CREATE PROCEDURE sp_batchinsert(IN loop_times INT)

#所有的语句都写在Begin-End块中,一致

BEGIN

#声明临时变量,不用加@
DECLARE  count INT DEFAULT 0;

#WHILE循环,DO + END WHILE包围,不是BEGIN-END
WHILE count < loop_times DO
SET count = count + 1;

#字符串和数字连接,CAST不能使用,用Concat可以连接起来组合成字符串
INSERT INTO book (name, author,price,country,publisher,version,description)
VALUES(CONCAT('BookName', count) , 'author', 100, 'China','Xinhua',1,'Test Data');


END WHILE;


END


调用存储过程:

#SQL SERVER:exec sp_batchinsert 100

call sp_batchinsert(100)



这样就可以批量插入了。

另。。为毛IBUS打不出xuexi啊,只要是ue都打不出來......

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值