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

如何通过SELECT语句向数据库表中插入多条数据?

批量插入实现方案

问题背景

现有SQL语句如下,其中:id为静态值,但嵌套子查询会返回多条数据,原VALUES写法无法完成批量插入:

INSERT INTO DM_SPONSOR_EQUIPO_VENTA dsev (dsev.SEV_IDEQUIPO_VENTA, dsev.SEV_IDSPONSOR)
VALUES (:id,
        (SELECT ds.SPO_IDSPONSOR  
         FROM DM_SPONSOR ds
         INNER JOIN DM_GRUPO dg ON ds.GP_IDGRUPO = dg.GP_IDGRUPO
         WHERE dg.GP_IDGRUPO = :idg))

预期插入结果示例:

Column AColumn B
15600
183000

解决方案

使用INSERT ... SELECT语法替代VALUES,直接将静态值与子查询结果组合成多行数据批量插入:

INSERT INTO DM_SPONSOR_EQUIPO_VENTA dsev (dsev.SEV_IDEQUIPO_VENTA, dsev.SEV_IDSPONSOR)
SELECT :id, ds.SPO_IDSPONSOR  
FROM DM_SPONSOR ds
INNER JOIN DM_GRUPO dg ON ds.GP_IDGRUPO = dg.GP_IDGRUPO
WHERE dg.GP_IDGRUPO = :idg

说明

这种写法会把静态值:id和查询返回的每一条SPO_IDSPONSOR配对,生成所有需要插入的行并一次性提交,完美适配批量插入需求,最终插入结果与示例表格一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:51:57