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

Postgres批量插入多值:为参与促销用户生成Stocks表数据

解决方案

不需要拆分多次请求,用**交叉连接(CROSS JOIN)**就能一次完成所有符合条件用户的促销条目插入,这是更高效的方案。

核心SQL语句

INSERT INTO "Stocks" ("Name", "UserId")
SELECT 
    s.stock_name,
    u."Id"
FROM 
    "Users" u
CROSS JOIN (
    VALUES 
        ('StockName1'),
        ('StockName2'),
        ('StockName3'),
        ('StockName4'),
        ('StockName5'),
        ('StockName6')
) AS s(stock_name)
WHERE 
    u."IsParticipates" = true;

逻辑说明

  1. 用VALUES子句构造出包含6个标准促销名称的临时数据集
  2. 将这个临时数据集和Users表中所有参与活动的用户做交叉连接,自动生成每个用户对应所有6个促销名称的组合
  3. 直接把这个组合结果插入到Stocks表中,一次操作完成所有数据写入

优势对比

  • 避免多次请求的额外开销,减少数据库连接和事务的重复操作
  • 逻辑简洁易维护,后续如果需要调整促销名称,只修改VALUES子句即可
  • 自动适配任意数量的参与用户,不管是2个还是上千个都能正确生成对应记录

扩展说明

如果后续需要支持用户的个性化促销条目,可以在交叉连接的基础上,额外关联用户的个性化配置表,或者在本次批量插入后,针对特定用户更新/补充个性化条目即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:25:01