Mysql插入1000w条数据
1.创建表结构
CREATE TABLE `my_tables` (
`id` bigint(32) NOT NULL AUTO_INCREMENT,
`name` varchar(32) DEFAULT NULL,
`age` int(32) DEFAULT NULL,
`time` varchar(32) DEFAULT NULL,
`pwd` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
)
2.创建函数(用于数据产生随机数)
delimiter //
CREATE FUNCTION `rand_string`(n INT) RETURNS varchar(255) CHARSET latin1
BEGIN
DECLARE chars_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
DECLARE return_str varchar(255) DEFAULT '' ;
DECLARE i INT DEFAULT 0;
WHILE i < n DO
SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));
SET i = i +1;
END WHILE;
RETURN return_str;
END
//
3.创建存储过程
DROP PROCEDURE IF EXISTS my_insert;
delimiter //
CREATE PROCEDURE `my_insert`(IN n int)
BEGIN
DECLARE i int DEFAULT 1;
WHILE (i <= n ) DO
INSERT into my_tables (id,name,age,time,pwd ) VALUES (i,rand_string(20),FLOOR(RAND() * 1000) ,now(),FLOOR(RAND() * 100) );
set i=i+1;
END WHILE;
END
//
4.调用
call my_insert(10000001) ;
5.注意事项
创建函数或者存储过程的时候一定要加上 delimiter // 因为在创建PROCUDURE的语句中会有;的存在,这时候你没有结束存储过程,创建的时候就把你的输入中断了;加入delimiter//之后结束标记就变为了//, 只有输入//符号才会结束输出