You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单条SQL语句向Postgre表批量插入100行随机数据

PostgreSQL 单条SQL批量插入100行随机测试数据方案

完全可以实现,你可以借助PostgreSQL内置的generate_series序列生成函数,搭配随机函数批量构造测试数据,无需循环或外部脚本,单条INSERT语句即可完成操作。

适配你的表结构的示例语句

INSERT INTO public.tasks (id, business_name, meta_title, status, title, type)
SELECT
  i::bigint, -- 生成1-100的连续ID,若ID为自增主键可删除该行避免主键冲突
  concat('business name ', i)::varchar, -- 可替换为substr(md5(random()::text),1,10)生成完全随机的字符串
  concat('meta title ', i)::varchar,
  (array['active', 'inactive', 'pending'])[floor(random() * 3 + 1)]::varchar, -- 从指定状态列表随机取值
  concat('title ', i)::varchar,
  (array['merchant', 'user', 'internal'])[floor(random() * 3 + 1)]::varchar -- 从指定类型列表随机取值
FROM generate_series(1, 100) AS t(i)
RETURNING id;

关键逻辑说明

  • generate_series(1,100) 会生成1到100共100行的数值序列,对应你需要的100条测试数据
  • random() 函数返回0到1的随机浮点数,结合数组下标可以实现从预设的枚举值中随机选取
  • 若需要完全无规律的字符串,可以用substr(md5(random()::text), 1, 长度)的方式生成随机字符串替换拼接固定前缀的逻辑
  • 如果你的id字段已经设置为自增(serial/identity类型),可以去掉INSERT字段列表里的id,以及SELECT里的i::bigint行,数据库会自动生成唯一ID,避免和已有数据的ID冲突

内容的提问来源于stack exchange,提问作者Peter Penzov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:15:03