MySQL创建存储过程批量插入10万条数据
所有操作在Navicat中进行。
存储过程
1、首先防止主键冲突,我们清空要操作的表。
TRUNCATE table TAB_TEST;
2、将语句的结束符号从分号;临时改为两个$$(可以是自定义),如果该语句没能正确执行,则结束符号仍然是分号;
delimiter $$;
3、编写存储过程
CREATE PROCEDURE batchInsert(in args int)
BEGIN
declare i int default 1;
start TRANSACTION;
while i <= args DO
insert into TAB_TEST(id,name) VALUES (i, concat(“张三”, i));
set i = i+1;
end while;
COMMIT;
END
$$ #第2步骤定义的结束符号,若是不生效则使用分号;
3、调用存储过程 call batchInsert(100000);
10万条数据花了42秒完成。
注:请严格注意分号的使用,有的语句不能加分号, 否则会报语法错误。
比如
1、CREATE PROCEDURE …
2、BEGIN
3、while i <= args DO
有的语句不能少分号。
比如
1、end while;
2、COMMIT;