mysql中insert into table_a (id,name,pass) values ('1','张三',‘123’),......
mysql中insertintotable_a(id,name,pass)values('1','张三',‘123’),(‘2’,‘李四’,‘123’),......这样...
mysql中insert into table_a (id,name,pass) values ('1','张三',‘123’),(‘2’,‘李四’,‘123’),......这样后面跟的记录数有条数限制么?
比如后面跟20W条会不会失败等等,有什么弊端没?
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (5288939 > 1048576). You can change this value on the server by setting the max_allowed_packet'
报的这个~ 展开
比如后面跟20W条会不会失败等等,有什么弊端没?
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (5288939 > 1048576). You can change this value on the server by setting the max_allowed_packet'
报的这个~ 展开
1个回答
展开全部
这种一次插入多条记录的sql语句的写法可以插入的最多记录条数会受到数据库规格中可接受sql语句的最大长度的限制,具体多长可以查阅mysql规格,相信当记录接近千条左右就会超限,超限部分的记录肯定不能插入表里的,至于未超限部分能否执行可实测一下。
追答
另外,如果需要插入非常多的记录行到数据表,特别是需要经网络插入到远程数据库的情况下,建议使用循环的办法一次只插入一条记录,因为一次送入大量的信息到数据库要求执行,无论对于网络和数据库引擎的负荷来说都不是一个好的做法。
在带宽有限的情况,一条非常之长的sql语句较之于一条短小的语句,前者因网络堵塞而导致执行失败的机会将远比后者多。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询