如何在mysql中使用INSERT语句插入多条记录

可以使用一条INSERT语句插入多条记录以提升效率,语法为INSERT INTO table_name (col1, col2) VALUES (v1a, v2a), (v1b, v2b);支持通过INSERT … select从其他表批量导入数据,需注意字段顺序和数量一致、适当处理NULL值、字符串和日期加单引号,建议合并插入减少通信开销并避免超过max_allowed_packet限制。

如何在mysql中使用INSERT语句插入多条记录

mysql 中,可以使用一条 INSERT 语句插入多条记录,这样比执行多条单条插入语句更高效,能显著减少数据库的通信开销。

基本语法:INSERT INTO … VALUES

通过在 VALUES 后面列出多组括号,每组括号表示一条记录,用逗号分隔:

 INSERT INTO table_name (column1, column2, column3)  VALUES    (value1a, value2a, value3a),   (value1b, value2b, value3b),   (value1c, value2c, value3c); 

例如,向名为 students 的表中插入三条记录:

 INSERT INTO students (name, age, class)  VALUES    ('张三', 18, '高三一班'),   ('李四', 19, '高三二班'),   ('王五', 17, '高二三班'); 

注意事项

使用多条记录插入时需要注意以下几点:

如何在mysql中使用INSERT语句插入多条记录

喵记多

喵记多 – 自带助理的 AI 笔记

如何在mysql中使用INSERT语句插入多条记录27

查看详情 如何在mysql中使用INSERT语句插入多条记录

  • 每条记录的值必须与指定的列顺序一一对应
  • 所有记录必须拥有相同数量的字段值
  • 如果某字段允许 NULL,可以显式写入 NULL
  • 字符串和日期类型要用单引号包裹

使用 INSERT … SELECT 插入多条数据

如果要从另一个表中查询数据并插入,可以结合 SELECT 语句:

 INSERT INTO students (name, age, class) SELECT name, age, class FROM temp_students WHERE status = 'approved'; 

这种方式适合批量迁移或复制数据。

性能建议

当需要插入大量数据时,推荐:

  • 尽量合并为一次多行插入,减少 SQL 执行次数
  • 避免在循环中执行单条 INSERT
  • 注意单条 SQL 语句的长度不要超过 max_allowed_packet 限制
  • 必要时可分批提交(如每 1000 条提交一次)

基本上就这些。合理使用多行 INSERT 能有效提升数据写入效率。

上一篇
下一篇
text=ZqhQzanResources