这么批量插入数据
在数据库中如何一次性写入多条记录?要求:不用循环 SQL 语句能做到就能做到,否则就是做不到,呵呵。 呵呵,我的意思是说用数据库的类来操作,该怎么写? AR 类貌似不支持批量写入数据。AR 类就是一个 SQL 语句的简单封装,如果 AR 类支持,其内部也肯定是循环。 mysql只能一条一条插,mssql可以用分号一次插多个 首先为何实现时不能用循环?
类的实现当然是处理一条sql,在具体实现时,才采用循环。
将sql放入数组中,然后使用循环遍历,在循环内再使用类实现单个sql的实现。
这样即可实现多条sql语句一起执行的效果。(其实本质还是单个执行) 据说只有循环。 还要加事务! 如果使用mysql可以循环数据,拼成sql语句:
insert into test(name) value('test1'),
('test2'),
('test3')
.......
('test2000');
这样可以批量插入,但是如果一性太多数据会把超时或内存不足,可以适当分批插入,如insert语句每次插入2000条,如果10万条数据,就分50次。这性程序是可以执行过来的。
再者如果是保存在xls的数据,可以转为csv格式的,通过mysql 的load data infile 函数操作,这很快,但数据库已存在几百万数据时,如果表有索引也会慢,如果没有索引,那速度还是很快的。
页:
[1]