mysql如何插入多条数据_mysql batch insert语法示例
发布时间 - 2026-02-03 00:00:00 点击率:次MySQL多值插入最常用写法是INSERT INTO table (c1,c2) VALUES (v1,v2),(v3,v4);单语句建议≤1000行,冲突时可用INSERT IGNORE跳过或ON DUPLICATE KEY UPDATE更新,大数据量优先LOAD DATA INFILE。
MySQL INSERT INTO VALUES 多值插入最常用写法
直接在一条 INSERT INTO 语句中列出多组值,用逗号分隔,是 MySQL 原生支持、兼容性好、性能合理的批量插入方式。
常见错误是把多条 INSERT 拼成一个长语句但没加逗号,或误以为必须用 INSERT ... SELECT。
- 语法必须是:
INSERT INTO table (col1, col2) VALUES (v1,v2), (v3,v4), (v5,v6); - 每组括号内字段数和类型必须与列定义严格一致
- 单条语句建议不超过 1000 行(受
max_allowed_packet和性能影响) - 遇到主键/唯一键冲突时,默认会中断整个语句;如需跳过冲突行,改用
INSERT IGNORE或ON DUPLICATE KEY UPDATE
INSERT IGNORE 和 ON DUPLICATE KEY UPDATE 的区别场景
当批量插入可能含重复主键或唯一索引值时,这两个选项决定行为走向,不能混用。
-
INSERT IGNORE:遇到重复键就跳过该行,不报错,也不更新已有数据 -
ON DUPLICATE KEY UPDATE:遇到重复键则执行指定的更新操作,比如INSERT INTO t (id,name) VALUES (1,'a'),(2,'b') ON DUPLICATE KEY UPDATE name=VALUES(name); - 注意
VALUES(col)是特殊函数,返回本次 INSERT 中对应列的值,不是字面量VALUES - 若表有多个唯一索引,任一触发都会激活
ON DUPLICATE KEY UPDATE
用 LOAD DATA INFILE 替代 INSERT 的真实条件
当数据源是

LOAD DATA INFILE 比拼接 SQL 快 5–10 倍,但它不是“语法替代”,而是另一套路径。
- 要求 MySQL 服务端能读取该文件路径(不是客户端机器),除非加
LOCAL关键字(需服务端开启local_infile=ON) - 字段分隔符、行结束符、转义字符必须显式声明,例如:
LOAD DATA INFILE '/tmp/data.csv' INTO TABLE t FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; - 不走 SQL 解析器,无法触发触发器,也不会被普通事务完全包裹(InnoDB 下仍可回滚,但机制不同)
- 字段顺序必须与文件列顺序一致,或用
(col1,col2)显式映射
Python / Java 等应用层批量插入的注意事项
应用代码里拼接多值 INSERT 很常见,但容易忽略连接层和数据库层的隐性限制。
- 预处理语句(如 Python 的
executemany())底层仍是多次单条或自动打包为多值VALUES,具体取决于驱动实现 - MySQL 连接默认启用
autocommit=False,务必手动commit(),否则数据不落盘 - 大批次建议分块(如每次 1000 行),避免单次请求超
max_allowed_packet(默认 4MB)导致Packets larger than max_allowed_packet bytes错误 - 如果用 ORM(如 SQLAlchemy),确认其批量方法是否真正生成多值
INSERT,有些版本会退化为循环单条
# mysql
# python
# java
# 大数据
# csv
# 区别
# batch
# sql
# select
# 循环
# table
# 数据库
# 跳过
# 单条
# 最常用
# 服务端
# 主键
# 也不
# 多个
# 已有
# 而在
# 这两个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建高效服务器建站系统?
js代码实现下拉菜单【推荐】
微信推文制作网站有哪些,怎么做微信推文,急?
Linux安全能力提升路径_长期防护思维说明【指导】
如何在宝塔面板创建新站点?
C语言设计一个闪闪的圣诞树
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
EditPlus 正则表达式 实战(3)
js实现获取鼠标当前的位置
如何在阿里云高效完成企业建站全流程?
Laravel如何实现API资源集合?(Resource Collection教程)
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何在建站之星绑定自定义域名?
Laravel怎么连接多个数据库_Laravel多数据库连接配置
bootstrap日历插件datetimepicker使用方法
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何使用Gate和Policy进行授权?(权限控制)
在线教育网站制作平台,山西立德教育官网?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
Laravel如何自定义错误页面(404, 500)?(代码示例)
奇安信“盘古石”团队突破 iOS 26.1 提权
如何彻底删除建站之星生成的Banner?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
浅谈redis在项目中的应用
如何在景安云服务器上绑定域名并配置虚拟主机?
如何在Tomcat中配置并部署网站项目?
Laravel如何发送系统通知?(Notification渠道示例)
PythonWeb开发入门教程_Flask快速构建Web应用
Python文件操作最佳实践_稳定性说明【指导】
制作公司内部网站有哪些,内网如何建网站?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
轻松掌握MySQL函数中的last_insert_id()
canvas 画布在主流浏览器中的尺寸限制详细介绍
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何快速搭建FTP站点实现文件共享?
Bootstrap整体框架之JavaScript插件架构
如何在香港服务器上快速搭建免备案网站?
如何快速搭建高效WAP手机网站?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
大连网站制作公司哪家好一点,大连买房网站哪个好?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
在线制作视频网站免费,都有哪些好的动漫网站?

