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

如何用单条INSERT语句批量插入仅单列不同的多行数据到表中

解决方案

完全可以用单条INSERT语句完成批量插入,主流数据库都支持以下两种实现方式:

方式1:通用INSERT + SELECT拼接(兼容所有符合SQL标准的数据库)

把所有需要插入的docunumber值拼成临时结果集,和固定列值做笛卡尔积后直接插入即可,不需要重复书写固定字段值,适合docunumber数量较多的场景:

INSERT INTO dpa_note (
    testo, 
    DATACREAZIONE, 
    IDUTENTECREATORE, 
    IDRUOLOCREATORE, 
    TIPOVISIBILITA, 
    TIPOOGGETTOASSOCIATO, 
    IDOGGETTOASSOCIATO,
    IDPEOPLEDELEGATO, 
    IDRFASSOCIATO
)
SELECT 
    'Documento validato con Verapdf', 
    3575, 
    252, 
    'T', 
    'D',
    doc_num,
    NULL, 
    NULL
FROM (
    -- 下方按格式替换为所有需要插入的docunumber值即可
    SELECT 1001 AS doc_num UNION ALL
    SELECT 1002 UNION ALL
    SELECT 1003 UNION ALL
    SELECT 1004
) AS doc_list;

方式2:行值构造器语法(适配MySQL 8.0+/PostgreSQL/Oracle 12c+/SQL Server等新版本数据库)

直接在VALUES后接多行值,固定列直接写死,仅docunumber列填写不同值即可,语法更直观,适合小批量插入场景:

INSERT INTO dpa_note (
    testo, 
    DATACREAZIONE, 
    IDUTENTECREATORE, 
    IDRUOLOCREATORE, 
    TIPOVISIBILITA, 
    TIPOOGGETTOASSOCIATO, 
    IDOGGETTOASSOCIATO,
    IDPEOPLEDELEGATO, 
    IDRFASSOCIATO
) VALUES
('Documento validato con Verapdf', 3575, 252, 'T', 'D', 1001, NULL, NULL),
('Documento validato con Verapdf', 3575, 252, 'T', 'D', 1002, NULL, NULL),
('Documento validato con Verapdf', 3575, 252, 'T', 'D', 1003, NULL, NULL),
('Documento validato con Verapdf', 3575, 252, 'T', 'D', 1004, NULL, NULL);

两种方式执行效率没有明显差异,可根据自己使用的数据库版本、待插入的docunumber数量选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:06:06