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

基于多ID批量插入多行SQL数据:每个用户ID插入3条订阅记录

解决方案:批量为每个用户ID插入3条订阅记录

没问题,我来帮你搞定这个批量插入的逻辑!核心思路是把用户ID列表和你需要的3组订阅/翻译数据做交叉连接,这样每个ID会自动和3组数据配对,一次性生成所有要插入的记录。

具体SQL语句

INSERT INTO subscriptions(id_account, subscription, translation)
SELECT ids.id_account, subs.subscription, subs.translation
FROM unnest('{123,456,789}'::int[]) AS ids(id_account)
CROSS JOIN (
    VALUES
        ('subscription1', 'translation1'),
        ('subscription2', 'translation2'),
        ('subscription3', 'translation3')
) AS subs(subscription, translation);

语句拆解说明

  • unnest('{123,456,789}'::int[]) AS ids(id_account):把你硬编码的用户ID数组转换成行数据,相当于生成一个临时的用户ID列表。
  • VALUES (...) AS subs(subscription, translation):用更简洁的方式定义你需要的3组订阅+翻译组合,比多次UNION ALL拼接可读性强很多。
  • CROSS JOIN:将每个用户ID和每一组订阅数据配对,自动为每个ID生成3条不同的订阅记录,完美匹配你的需求。

扩展场景适配

如果你的用户ID不是硬编码数组,而是来自其他表(比如accounts表),只需要替换掉unnest部分的查询即可:

INSERT INTO subscriptions(id_account, subscription, translation)
SELECT a.id_account, subs.subscription, subs.translation
FROM accounts a
CROSS JOIN (
    VALUES
        ('subscription1', 'translation1'),
        ('subscription2', 'translation2'),
        ('subscription3', 'translation3')
) AS subs(subscription, translation);

这样就能高效完成批量插入啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:02:13