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

PostgreSQL如何为onboarding_tasks每行生成4条关联onboarding_task_item测试数据

修改方法

你只需将generate_series从SELECT字段列表移动到FROM子句做交叉连接,序列范围设置为1~4即可,修改后的SQL如下:

INSERT into onboarding_task_item (title, task_id, onboarding_tasks)
SELECT
    left (md5(random()::text), 10) AS title,
    ot.id,
    g.id AS onboarding_tasks
FROM onboarding_tasks ot
CROSS JOIN generate_series(1,4) AS g(id);

原理说明

  • 原写法将generate_series放在SELECT字段中,只会为每行onboarding_tasks数据返回单个序列值,不会扩展行数,所以只能生成1条关联的子表数据。
  • 把generate_series放在FROM子句做交叉连接后,会将onboarding_tasks的每一行和生成的4行序列做笛卡尔积匹配,自动为每条任务生成4条对应的子表数据,刚好满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:15:07