首页 热点资讯 义务教育 高等教育 出国留学 考研考公

往mysql test库t表插入一百万记录 如何用tsql 或存储过程编写 把代码写 ...

发布网友 发布时间:2022-04-27 03:40

我来回答

3个回答

懂视网 时间:2022-04-08 04:25

DELIMITER $$ 2 3 DROP PROCEDURE IF EXISTS `Havefun`.`create_100w_data` $$ 4 5 CREATE 6 /*[DEFINER = { user | CURRENT_USER }]*/ 7 PROCEDURE `Havefun`.`create_100w_data`() 8 /*LANGUAGE SQL 9 | [NOT] DETERMINISTIC 10 | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 11 | SQL SECURITY { DEFINER | INVOKER } 12 | COMMENT ‘string‘*/ 13 BEGIN 14 DECLARE i INT; 15 DROP TABLE IF EXISTS `Havefun`.`100w_data`; 16 CREATE TABLE `100w_data` ( 17 `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘主ID‘, 18 `name` CHAR(20) NOT NULL DEFAULT ‘‘ COMMENT ‘名字‘, 19 `status` INT(1) UNSIGNED NOT NULL DEFAULT ‘99‘ COMMENT ‘状态,1-审核通过 0-未通过 99-待审核‘, 20 `type` VARCHAR(50) NOT NULL DEFAULT ‘‘ COMMENT ‘类型‘, 21 PRIMARY KEY (`id`) 22 ) ENGINE=INNODB DEFAULT CHARSET=utf8; 23 24 SET i=1; 25 WHILE (i<1000000) DO 26 INSERT INTO `100w_data`(`name`, `status`, `type`) VALUES(CONCAT(‘data_‘,i), ‘99‘, ‘PROC‘); 27 SET i=i+1; 28 END WHILE; 29 30 END$$ 31 32 DELIMITER ;

2.定义插入的开始点与结束点,这样可以多进程执行存储过程,提高速率。(也可以用PHP脚本来跑)

 1 DELIMITER $$
 2 
 3 USE `Havefun`$$
 4 
 5 DROP PROCEDURE IF EXISTS `create_i_data`$$
 6 
 7 CREATE DEFINER=`root`@`%` PROCEDURE `create_i_data`(IN _start INT, IN _end INT)
 8 BEGIN
 9 DECLARE i INT;
10 DROP TABLE IF EXISTS `Havefun`.`amt_data`;
11  CREATE TABLE `amt_data` (
12 `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘主ID‘,
13 `name` CHAR(20) NOT NULL DEFAULT ‘‘ COMMENT ‘名字‘,
14 `status` INT(1) UNSIGNED NOT NULL DEFAULT ‘99‘ COMMENT ‘状态,1-审核通过 0-未通过 99-待审核‘,
15 `type` VARCHAR(50) NOT NULL DEFAULT ‘‘ COMMENT ‘类型‘,
16 `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘创建时间‘,
17 `update_time` INT(11) NOT NULL COMMENT ‘更新时间‘,
18 PRIMARY KEY (`id`)
19 ) ENGINE=INNODB DEFAULT CHARSET=utf8;
20 SET i=_start;
21 WHILE (i<_end) DO
22 INSERT INTO `amt_data`(`name`, `status`, `type`, `create_time`, `update_time`) VALUES(CONCAT(‘data_‘,i), ‘99‘, ‘PROC‘,NOW(),UNIX_TIMESTAMP(NOW()));
23 SET i=i+1;
24 END WHILE;
25 END$$
26 
27 DELIMITER ;

 

MySQL用存储过程创建100W的数据

标签:

热心网友 时间:2022-04-08 01:33

行数把100改成你想要的就可以了,或者定义成存储过程的参数:
CREATE TABLE batch_instbl(
COLA CHAR(6),
COLB CHAR(6),
COLC INT
);

delimiter $
create procere batch_insert()
begin
declare i decimal (10) default 0 ;
while i<>100 do
INSERT INTO `batch_instbl` (`COLA`, `COLB`,COLC)
VALUES (RAND()*1234567, RAND()*987654321, 100*RAND());
set i = i+1;
end while;
commit;
end;$
delimiter ;

call batch_insert();

热心网友 时间:2022-04-08 02:51

阿萨德开房间阿隆索的减肥

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com