利用Navicat存储过程来插入1000万条测试数据(造测试数据)
CREATE TABLE t_user
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
name
varchar(255) DEFAULT NULL,
age
tinyint(4) DEFAULT NULL,
create_time
datetime DEFAULT NULL,
update_time
datetime DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
通过下面的存储过程来插入1000万条数据。
delimiter
−
−
(
−
定
义
分
割
符
号
,
m
y
s
q
l
默
认
分
割
符
为
分
号
;
,
这
里
定
义
为
--(-定义分割符号,mysql 默认分割符为分号;,这里定义为
−−(−定义分割符号,mysql默认分割符为分号;,这里定义为)
DROP PROCEDURE IF EXISTS proc_batch_insert;
CREATE PROCEDURE proc_batch_insert() --(创建一个存储过程,并命名为 proc_batch_insert)
BEGIN
DECLARE pre_name BIGINT;
DECLARE ageVal INT;
DECLARE i INT;
SET pre_name=187635267;
SET ageVal=100;
SET i=1;
WHILE i < 1000000 DO
INSERT INTO t_user(`name`,age,phone,create_time,update_time) VALUES(CONCAT(pre_name,'@qq.com'),(ageVal+1)%30,NOW(),NOW());
SET pre_name=pre_name+100;
SET i=i+1;
END WHILE;
END $$ --( 这里遇到符号,即执行上面一整段sql语句)
delimiter ; --( #恢复mysql分隔符为;)
call proc_batch_insert(); --(#调用存储过程)