自学内容网 自学内容网

mysql存储过程模拟数据批量生成的函数模板

下面是个模板,需要自己改表名称,和要插入的字段、函数名称为 generate_data,至于需要什么样的数据,自己根据内容取想要的内容

CREATE DEFINER = CURRENT_USER PROCEDURE `generate_data`(
    IN num_records INT
)
BEGIN
    DECLARE i INT DEFAULT 1; -- 记录循环的次数
    DECLARE rand_datetime datetime;

    -- 生成指定行的数据
    WHILE i <= num_records DO
        -- 随机创建时间,范围为:2022-01-01 00:00:00 到 2023-12-31 23:59:59
        -- 1640995200 是 2022-01-01 00:00:00 的 Unix 时间戳。
        -- 1704057599 是 2023-12-31 23:59:59 的 Unix 时间戳。
        set rand_datetime = FROM_UNIXTIME(FLOOR(1640995200 + RAND() * (1704057599 - 1640995200)));


        -- 插入订单数据
        INSERT INTO your_table_name (
            # 这里为需要设置的字段
        ) VALUES (
            NULL, -- null值
            'default', -- default值
            '0', -- 赋值为0
            NOW(), -- 赋值为当前时间
            FLOOR(RAND() * 3), -- 随机 0,1,2
            FLOOR(RAND() * 2), -- 随机 0,1
            CONCAT('ORDER', LPAD(i, 6, '0')), -- 创建ORDER000000,i为循环的次数,当i为6时,此时为ORDER000006
            LPAD(FLOOR(RAND() * 10000), 5, '0'), -- 随机地区编码
            CASE FLOOR(RAND() * 2) WHEN 0 THEN 'Y' ELSE 'N' END, -- 随机Y,N
            CASE FLOOR(RAND() * 3) WHEN 0 THEN '人工' WHEN 1 THEN '系统' ELSE '其他' END -- 随机人工,系统,其他           
            CONCAT('OPERATE', LPAD(FLOOR(RAND() * 100), 2, '0')),              -- 固定前缀 + 2位随机数
            CONCAT('110', LPAD(FLOOR(RAND() * 100000000000000000), 17, '0')),  -- 随机身份证号码
            CONCAT('上海市浦东新区', LPAD(FLOOR(RAND() * 100), 2, '0'), '号'), -- 随机地址
            select CONCAT('13', LPAD(FLOOR(RAND() * 10000000000), 9, '0'),     -- 随机电话号码
            -- 随机固定内容
            (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('张主管,李业务员,周业务员,吴业务员', ',', FLOOR(1 + RAND() * 4)), ',', -1)),
            CONCAT(
                SUBSTRING('赵钱孙李周吴郑王冯陈诸卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮齐康伍余元卜顾孟平黄和穆萧尹姚邵堪汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董粱杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫经房裘干解应宗丁宣单杭洪包诸左石崔吉钮龚兴位零',floor(1 + 190 * rand()),1),
                SUBSTRING('明国华建文平志伟东海强晓生光林小民永杰军金健一忠洪江福祥中正振勇耀春大宁亮宇兴宝少剑云学仁涛瑞飞鹏安亚泽世汉达卫利胜敏群波成荣新峰刚家龙德庆斌辉良玉俊立浩天宏子松克清长嘉红山贤阳乐锋智青跃元武广思雄锦威启昌铭维义宗英凯鸿森超坚旭政传康继翔栋仲权奇礼楠炜友年震鑫雷兵万星骏伦绍麟雨行才希彦兆贵源有景升惠臣慧开章润高佳虎根远力进泉茂毅富博霖顺信凡豪树和恩向道川彬柏磊敬书鸣芳培全炳基冠晖京欣廷哲保秋君劲轩帆若连勋祖锡吉崇钧田石奕发洲彪钢运伯满庭申湘皓承梓雪孟其潮冰怀鲁裕翰征谦航士尧标洁城寿枫革纯风化逸腾岳银鹤琳显焕来心凤睿勤延凌昊西羽百捷定琦圣佩麒虹如靖日咏会久昕黎桂玮燕可越彤雁孝宪萌颖艺夏桐月瑜沛诚夫声冬奎扬双坤镇楚水铁喜之迪泰方同滨邦先聪朝善非恒晋汝丹为晨乃秀岩辰洋然厚灿卓杨钰兰怡灵淇美琪亦晶舒菁真涵爽雅爱依静棋宜男蔚芝菲露娜珊雯淑曼萍珠诗璇琴素梅玲蕾艳紫珍丽仪梦倩伊茜妍碧芬儿岚婷菊妮媛莲娟一',floor(1 + 400 * rand()),1),
                SUBSTRING('明国华建文平志伟东海强晓生光林小民永杰军金健一忠洪江福祥中正振勇耀春大宁亮宇兴宝少剑云学仁涛瑞飞鹏安亚泽世汉达卫利胜敏群波成荣新峰刚家龙德庆斌辉良玉俊立浩天宏子松克清长嘉红山贤阳乐锋智青跃元武广思雄锦威启昌铭维义宗英凯鸿森超坚旭政传康继翔栋仲权奇礼楠炜友年震鑫雷兵万星骏伦绍麟雨行才希彦兆贵源有景升惠臣慧开章润高佳虎根远力进泉茂毅富博霖顺信凡豪树和恩向道川彬柏磊敬书鸣芳培全炳基冠晖京欣廷哲保秋君劲轩帆若连勋祖锡吉崇钧田石奕发洲彪钢运伯满庭申湘皓承梓雪孟其潮冰怀鲁裕翰征谦航士尧标洁城寿枫革纯风化逸腾岳银鹤琳显焕来心凤睿勤延凌昊西羽百捷定琦圣佩麒虹如靖日咏会久昕黎桂玮燕可越彤雁孝宪萌颖艺夏桐月瑜沛诚夫声冬奎扬双坤镇楚水铁喜之迪泰方同滨邦先聪朝善非恒晋汝丹为晨乃秀岩辰洋然厚灿卓杨钰兰怡灵淇美琪亦晶舒菁真涵爽雅爱依静棋宜男蔚芝菲露娜珊雯淑曼萍珠诗璇琴素梅玲蕾艳紫珍丽仪梦倩伊茜妍碧芬儿岚婷菊妮媛莲娟一',floor(1 + 400 * rand()),1)
            ),-- 随机3个字的姓名
            CONCAT('网点', LPAD(FLOOR(RAND() * 100), 2, '0')), -- 受理网点
            CONCAT('备注', LPAD(FLOOR(RAND() * 100), 2, '0')), -- 随机描述
            rand_datetime, -- 随机范围时间(变量在上面,时间范围2022-01-01 00:00:00 到 2023-12-31 23:59:59)
            CONCAT('/path/to/file/', LPAD(i, 6, '0'), '_1.pdf'), -- 随机文件路径 /path/to/file/000001_1.pdf,i为循环的次数
            CONCAT('file_', LPAD(i, 6, '0'), '_1.pdf'), -- 随机文件名称 file_000001_1.pdf,i为循环的次数
            MD5(CONCAT('file_', LPAD(i, 6, '0'), '_1.pdf')), -- 随机文件file_000001_1.pdf的md5值
            FLOOR(RAND() * 1000000), -- 随机文件大小
        );
 
        -- 增加计数器
        SET i = i + 1;
    END WHILE;
END

函数调用的例子

-- call 函数名称(数据量)
call generate_data(1000);

原文地址:https://blog.csdn.net/qq_29001539/article/details/143795354

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!