暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mysql/Oracle/Postgresql快速批量生成百万级测试数据sql

hongg 2025-04-07
224

一、Mysql

create table t_test(
id varchar(200), 
name varchar(200), 
age int, 
password varchar(200)
);

-- 插入800w的模拟数据
INSERT INTO t_test (id, name, age, password)
SELECT
    CONCAT('id', FLOOR(RAND() *10000)),  
    CONCAT('User', FLOOR(RAND() *10000)),           -- 生成随机的用户名
    FLOOR(RAND() *100) +18,                           -- 生成随机的年龄 (18-117)
    CONCAT('user', FLOOR(RAND() *10000), '@example.com') -- 生成随机的邮箱地址
    
FROM
    information_schema.tables a,
    information_schema.tables b
LIMIT 8000000;

二、Oracle

create table t_test(
id nvarchar2(200), 
name nvarchar2(200), 
age integer, 
password nvarchar2(200)
);

-- 插入600w的模拟数据

INSERT INTO t_test (id, name, age, password)
SELECT
    'id'||FLOOR(DBMS_RANDOM.value(0, 10000)),  -- 生成随机的ID
    'User'||FLOOR(DBMS_RANDOM.value(0, 10000)),  -- 生成随机的用户名
    FLOOR(DBMS_RANDOM.value(18, 118)),  -- 生成随机的年龄 (18-117)
    'user'||FLOOR(DBMS_RANDOM.value(0, 10000)) ||'@example.com'-- 生成随机的邮箱地址
FROM
    dual
CONNECT BY LEVEL <=8000000;

三、Postgresql

create table t_test(
id varchar(200), 
name varchar(200), 
age integer, 
password varchar(200)
);

-- 插入600w的模拟数据

INSERT INTO t_test  (id, name, age, password)
SELECT
    'id'||FLOOR(RANDOM() *10000),  -- 生成随机的ID
    'User'||FLOOR(RANDOM() *10000),  -- 生成随机的用户名
    FLOOR(RANDOM() *100) +18,  -- 生成随机的年龄 (18-117)
    'user'||FLOOR(RANDOM() *10000) ||'@example.com'-- 生成随机的邮箱地址
FROM
    generate_series(1, 8000000);
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论