700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MySQL 通过存储过程生成带有随机姓名的百万条测试数据

MySQL 通过存储过程生成带有随机姓名的百万条测试数据

时间:2022-11-02 18:12:00

相关推荐

MySQL 通过存储过程生成带有随机姓名的百万条测试数据

建表语句

CREATE TABLE `users` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(256) DEFAULT NULL,PRIMARY KEY (`id`),KEY `name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

存储过程

DELIMITER $$DROP PROCEDURE IF EXISTS `batch_insert`$$CREATE PROCEDURE `batch_insert`(IN number INT)BEGINDECLARE i INT DEFAULT 0;SET autocommit=0;WHILEi < number DOINSERT INTO users (NAME)VALUES('');SET i = i + 1;END WHILE;SET @SURNAME = '赵钱孙李周吴郑王冯陈诸卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花';SET @NAME = '卓阳裕寅谛锐皓芃琛卓皓寅沛佳升郁文天安祜锋澄星梓贤泽福允';SET @NAME = '卓阳裕钊年哲中权鹤信材喆锦谷锟栋芃荣胤烁伟日帆权博澄韦然';UPDATEusersSET`name` = CONCAT(SUBSTR(@surname,FLOOR(RAND() * LENGTH(@surname) / 3+1),1),SUBSTR(@NAME,FLOOR(RAND() * LENGTH(@NAME) / 3+1),1),SUBSTR(@NAME2,FLOOR(RAND() * LENGTH(@NAME2) / 3+1),1));COMMIT;END$$DELIMITER ;

调用

TRUNCATE TABLE users; -- 截断表CALL `batch_insert`(1000000); -- 1百万条数据

因为要随机生成名称,且当数据量大的时候难免会产生重名重姓的时候, 所以如果要不重复的话,可以使用该网站 生成随机名称 生成名称后拼接。

我这里生成了一些字符串,可以复制过去。

平斌良辞嘉寅子侠皓寅凯梁锋鹤晓颜谛贤铭年楷杰谛郁凯辞允芃安安梓年天谛哲澄裕腾禄年杰盛成嘉楷锟濡康星诚锐禧锦权帝宇哲谷祯皓祯睿瑞澄博鑫峰峰子远钊祜沛材允振炳暄禧俊烁禄峰楷康鑫邦栋铭谛鑫加谛福

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。