mysql存储中怎么使用while批量插入数据

网友投稿 882 2023-07-07

mysql存储中怎么使用while批量插入数据

mysql存储中怎么使用while批量插入数据

批量提交

while 语句写法:

while '条件' do 循环体语句; end while;登录后复制

完整写法

drop procedure if exists test_insert;delimiter $$create procedure test_insert(n int) begin declare v int default 0; set AUTOCOMMIT = 0; while v < n do insert into test(second_key, text, field_4,status, create_date) values ((v*10), concat('t',v), substring(md5(rand()), 1, 10), 'good', adddate('1970-01-01', rand(v) * 10000)); set v = v + 1; end while; set AUTOCOMMIT = 1;end$$delimiter ;登录后复制

查看、删除存储过程:

mysql> show procedure status like 'test_insert';mysql> show create procedure test_insert\G;mysql> drop procedure if exists test_insert;登录后复制

创建表

CREATE TABLE test (id INT NOT NULL AUTO_INCREMENT,second_key INT,text VARCHAR(20),field_4 VARCHAR(20),status VARCHAR(10),create_date date,PRIMARY KEY (id),KEY idx_second_key (second_key)) Engine=InnoDB CHARSET=utf8;登录后复制

插入100万条数据

mysql> call test_insert(1000000);Query OK, 0 rows affected (31.86 sec)登录后复制

单个提交

完整写法

drop procedure if exists test_insert;delimiter $$create procedure test_insert(n int) begin declare v int default 0; while v < n do insert into test(second_key, text, field_4,status, create_date) values ((v*10), concat('t',v), substring(md5(rand()), 1, 10), 'good', adddate('1970-01-01', rand(v) * 10000)); set v = v + 1; end while;end$$delimiter ;登录后复制

插入1万条数据

mysql> call test_insert(10000);Query OK, 1 row affected (1 min 8.52 sec)登录后复制

打开另一个窗口查看

mysql> select count(*) from test.test;+----------+| count(*) |+----------+| 1428 |+----------+1 row in set (0.00 sec)mysql> select count(*) from test.test;+----------+| count(*) |+----------+| 1598 |+----------+1 row in set (0.00 sec)mysql> select count(*) from test.test;+----------+| count(*) |+----------+| 1721 |+----------+1 row in set (0.00 sec)mysql> select count(*) from test.test;+----------+| count(*) |+----------+| 1983 |+----------+1 row in set (0.00 sec)登录后复制

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL怎么增量备份
下一篇:MySQL如何使用distinct()命令
相关文章