首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql中一条insert语句批量插入多条记录

这种方式只能够一次插入一条数据,要想插入多条数据,就得多次调用此sql语句,意味着多次与数据库建立连接。...但是这样一来,就会增加服务器负荷,因为,执行每一次SQL服务器都要同样对SQL进行分析、优化等操作。幸好MySQL提供了另一种解决方案,就是使用一条INSERT语句插入多条记录。...这并不是标准SQL语法,因此只能在MySQL中使用。...])); 可以看到,和原来常规INSERT语句区别,仅仅是在VALUES 后面增加值排列,每条记录之间用英文输入法状态下逗号隔开,是不是so easy。...建议: 在程序中,插入批量数据时,最好使用这种通过一条INSERT语句来一次性插入方式。这样可以避免程序和数据库建立多次连接,从而增加服务器负荷。

4.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

MySql批量插入语句(INSERT)

使用INSERT语句实现批量插入 前言 在初始化数据库或者导入一些数据时,常常会用到批量操作,如果在循环脚本中使用单条插入数据语句时,就意味着多次与数据库建立连接,这样会急剧消耗服务器性能。...那么,MySql是提供了批量插入语句,和单条插入语句类似。...单条插入语句写法 INSERT INTO [表名] ([列名],[列名]) VALUES([列值],[列值]); 批量插入语句写法 INSERT INTO [表名]([列名],[列名]) VALUES...([列值],[列值])), ([列值],[列值])), ([列值],[列值])); 由此看来两者很相似,批量插入语句则是在前者值后面继续添加新值,并用逗号分隔。...NULL, `sex` VARCHAR(16), PRIMARY KEY ( `id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8; 查看结果 批量插入记录

8.1K20

SQLite事务 SQLite插入多条语句为什么这么慢?.net (C#)

今天有个朋友测试 SQLite,然后得出结论是: SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟! 下面是他发给我测试代码。...1000条记录 for (int i = 0; i < 1000; i++) { cmd.CommandText = "insert into [test1] ([s]) values...1000条<em>记录</em> for (int i = 0; i < 1000; i++) { cmd.CommandText = "insert into [test1] ([s]) values...很简单,SQLite 缺省为每个操作启动一个事务,那么原代码 1000 次插入起码开启了 1000 个事务,"事务开启 + SQL 执行 + 事务关闭" 自然耗费了大量时间,这也是后面显示启动事务后为什么如此快原因...其实这是数据库操作基本常识,大家要紧记,不好代码效率差不是一点半点。

2K70

MySQL避免插入重复记录方法

mysql在存在主键冲突或者唯一键冲突情况下,根据插入策略不同,一般有以下三种避免方法。...,新增了一条id=4,c1=3记录. replace into语句执行完会返回一个数,来指示受影响数目。...使用insert into,你必须具有insert和update权限 如果有新记录插入,则受影响行值显示1;如果原有的记录被更新,则受影响行值显示2;如果记录被更新前后值是一样,则受影响行数值显示...结论: 这三种方法都能避免主键或者唯一索引重复导致插入失败问题。 insert ignore能忽略重复数据,只插入不重复数据。...id改变;insert ... on duplicate key update在遇到重复行时,会直接更新原有的行,具体更新哪些字段怎么更新,取决于update后语句

2.2K51

MySQL常用SQL语句插入更新删除查询

整理一些MySQL常用SQL语句插入、更新、删除、查询、根据指定列对结果集进行排序等。...插入 (1) 不指定列名 insert into student values (218004, '龙猫', '男', '23') 注意:如果不指定插入列名,则value中值要对应表中每一列,若少列...从笛卡尔积角度讲就是从笛卡尔积中挑出ON子句条件成立记录,然后加上左表中剩余记录,最后加上右表中剩余记录。...形式SQL语句称为查询块。当一个查询块SELECT子句或者WHERE子句中嵌套了另一个查询块查询语句就称为嵌套查询。最外层查询称为外层查询或父查询,最内层查询称为内层查询或子查询。...其中,UNION和UNION ALL都会做并集,但UNION会去除重复记录。最后,MySQL不支持INTERSECT和EXCEPT。

5.1K30

Mysql常用sql语句(22)- insert 插入数据

测试必备Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础查询语句了...这篇讲就是插入数据...insert 属于DML语句(数据操纵语句) insert ... values 语法格式 INSERT INTO [ [ , … ] ] VALUES (值1) [...可以插入任意行数据,而 insert ... set 每次只能插入一行数据 看看 emp 表结构,方便后面栗子演示 ?...栗子一:不指定字段,添加记录 INSERT INTO emp VALUES ( "20", "员工1", 3, 1, 1 ); 栗子二:指定所有字段,添加记录 INSERT INTO emp (...id, NAME, dept_id, leader, is_enable ) VALUES ( "20", "员工1", 3, 1, 1 ); 上面两个栗子添加记录数据是一样哦,只是一个指定了所有字段

1.2K20

MySQL插入语句(Insert)几种使用方式

,但是使用这种方式必须赋值为null 不推荐原因:在实际开发中如果使用此方法进行插入数据,后面表进行了改动(比如字段顺序改变了)那么整个语句都将报错,扩展性及其差,且维护起来比较困难。...3.REPLACE INSERT语句语句作用是当我们在插入一条数据时,如果此条已经存在,那么先删除原来存在数据再添加插入数据,如果不存在那么直接插入数据。...4.INSERT IGNORE INTO 语句语句作用是如果插入数据已经存在那么就忽略插入数据(也就是不改变原来数据),如果不存在则插入数据。...6.INSERT SELECT语句 1.此语句作用是将SELECT语句结果插入表中,可实现数据迁移。...查看被插入所有数据 ? 执行INSERT SELECT语句并查看结果 ?

2.2K30

Web程序员Mysql进阶序二之sql多条数据插入多条数据更新、多表同时查询

数据库在web开发时候,减少连接次数可以降低数据库负载,所以一次连接,多数据操作可以有效优化数据库。...( name varchar(10), sex varchar(10) ); create table test1( name varchar(10), sex varchar(10) ); 多条数据同时插入...nan1'),('xiao2','nan2'); 或者: insert into test values('xiao','nan'),('xiao1','nan1'),('xiao2','nan2'); 多条数据更新...: update test t, test1 t1 set t.sex='nv',t1.sex='nv1' where t.name=t1.name; 以上sql语句test表别名为t,test1表别名为...多表同时查询: select name,sex from test,test1 我们将在test和test1表中分别去除testname值和test1sex值,当然可能这个例子并不是很好能够反映这个多表查询作用

1.5K10

MySQL批量插入数据库实现语句性能分析

VARCHAR( 50 ) NOT NULL, other_value VARCHAR( 50 ) NOT NULL )   通常情况下单条插入sql语句我们会这么写: INSERT...允许我们在一条sql语句中批量插入数据,如下sql语句: INSERT INTO example (example_id, name, value, other_value) VALUES...,下面会分别进行测试,目标是插入一个空数据表200W条数据   第一种方法:使用insert into 插入,代码如下: $params = array('value'=>'50'); set_time_limit...SQL语句:将SQL语句进行拼接,使用 insert into table () values (),(),(),()然后再一次性插入,如果字符串太长,   则需要配置下MYSQL,在mysql 命令行中运行...->query($sql);   最后总结下,在插入大批量数据时,第一种方法无疑是最差劲,而第二种方法在实际应用中就比较广泛,第三种方法在插入测试数据或者其他低要求时比较合适,速度确实快。

3.8K10

MySQL 批量插入记录报 Error 1390 (HY000)

1.背景 Golang 后台服务使用 GORM 实现与 MySQL 交互,在实现一个通过 Excel 导入数据接口时,使用 Save 方法一次性插入大量记录(>1w)时报了如下错误: Error 1390...该错误属于 MySQL 服务端错误,可惜是,官方文档并未给出详细错误原因,只给出了错误码简短描述。错误描述字面意思是“预处理语句包含太多占位符”,结合业务场景,猜测原因是一次插入太多记录。...3.分批插入 既然不允许一次插入太多记录,那么可以改为分批插入,而不是一次性插入所有数据。 // 待插入记录。...不知道你有没有疑问,我这里分批插入每批记录数是 1000,那可以采用 2000 或者其他数量吗?每批插入记录上限是多少呢? 带着这个疑问,请继续往下看。 4.一次最多能插入多少条记录?...MySQL 服务端之所以报 Error 1390 (HY000) 错误,直接原因是一次插入过多记录,但更深层次原因是 MySQL SQL 语句占位符数量有上限,最大值为 16bits 无符号整数最大值

48810
领券