怎样在mysql中插入上万条测试数据
1.创建名为student表
id为主键并自增
CREATE TABLE student (
id INT (11) PRIMARY KEY NOT NULL AUTO_INCREMENT,#id设为主键并自增
sid VARCHAR (50),
age INT (11),
NAME VARCHAR (50),
class VARCHAR (50)
);
2.建立存储过程,存储过程名为test ()
(1).简单存储过程(主要执行语句,建议用(2)的方法)
DELIMITER //
CREATE PROCEDURE test (INOUT s INT)
BEGIN
DECLARE i INT;
SET i = 0;
REPEAT
#插入数据库的数据,请记得改成你想要的插入语句
INSERT INTO student (NAME, age, sid, class)
VALUES
('name', 20,12000, 20210302 );
SET i = i + 1;
UNTIL i >= s
END REPEAT;
END //
(2).加入随机名字,学号等存储过程
DELIMITER //
CREATE PROCEDURE test (INOUT s INT)
BEGIN
DECLARE i INT;
SET i = 0;
REPEAT
#随机产生姓氏
SET @xing = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮';
SET @xing1 = SUBSTRING(@xing, FLOOR(RAND() * 85), 1);
#随机产生名1
SET @m1 = ' 洋泽雨哲瀚胤运佑运允晨运恒运发云天耘志耘涛振荣振翱中震子辰晗昱瀚玥瀚昂瀚彭景行景中景逸景彰绍晖文曦哲永昌子昂智宇智晖晗日晗昱瀚昂昊硕昊磊昊东鸿晖绍晖文昂文景曦哲永昌子昂智宇';
SET @ming1 = SUBSTRING(@m1, FLOOR(RAND() * 87), 1);
#随机产生名2
SET @m2 = '文曦哲永昌子昂智宇智晖晗日晗昱瀚昂昊硕昊磊昊东鸿晖绍晖文昂文景曦哲永昌子昂智宇 洋泽雨哲瀚胤运佑运允晨运恒运发云天耘志耘涛振荣振翱中震子辰晗昱瀚玥瀚昂瀚彭景行景中景逸景彰绍晖';
SET @ming2 = SUBSTRING(@m2, FLOOR(RAND() * 87), 1);
#结合形成完整民称
SET @name1 = CONCAT(@xing1, @ming1, @ming2);
#随机生成入学年份、班级
SET @class1 = CONCAT(
1,
FLOOR(10 + RAND() * 89),
FLOOR(2010 + RAND() * 11),
FLOOR(10 + RAND() * 20)
);
#随机生成sid号
SET @sid1 = CONCAT(
'150',
FLOOR(RAND() * 9),
FLOOR(RAND() * 9),
FLOOR(RAND() * 9),
FLOOR(RAND() * 9),
FLOOR(RAND() * 9),
FLOOR(RAND() * 9),
FLOOR(RAND() * 9)
);
#插入数据库
INSERT INTO student (NAME, age, sid, class)
VALUES
(
@name1,
FLOOR(18 + RAND() * 8),
@sid1,
@class1
);
SET i = i + 1;
UNTIL i >= s
END REPEAT;
END //
3.调用存储过程
SET @s=10; #输入想要插入数据的条数
CALL test(@s);
插入10万条数据用时