MySQL使用存储过程批量插入数据

-------------MySQL批量插入测试数据-----------------------
CREATE TABLE `students_table` (   --定义测试表
  `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;

delimiter //
DROP PROCEDURE IF EXISTS proc_batch_insert;  --定义存储过程名称
CREATE PROCEDURE proc_batch_insert()
BEGIN
DECLARE pre_name BIGINT;    --声明变量
DECLARE ageVal INT;
DECLARE i INT;
SET student_name=187635267;     --赋值
SET ageVal=18;
SET i=1;
WHILE i < 1000 DO
        INSERT INTO students_table(id,`name`,age,create_time,update_time) VALUES(i,CONCAT(student_name,'@qq.com'),ageVal+18,NOW(),NOW());
SET pre_name=pre_name+100;
SET i=i+1;
SELECT RAND()*5 into ageVal;  --产生0-5之间的随机数
END WHILE;
END //
delimiter ;  

call proc_batch_insert();   --调用存储过程

MySQL使用存储过程批量插入数据_第1张图片

你可能感兴趣的:(MySQL)