先贴我目前的代码:
$file = new File($resFilename);
$file->seek(PHP_INT_MAX);
$maxLine = $file->key();
$file->seek(0);//定位到开头
$row = 0;
Db::startTrans();
try{
while(true){
$row++;
if($row > $maxLine || $file->eof()){
//文件结束如果没有到10000条,也提交
Db::commit();
break;
}
//插入数据
Db::table('testable')>insertAll($testdata);
if($row % 10000==0){
//10000条数据插入一次
Db::commit();
}
}
}catch (\Exception $e){
Db::rollback();
}
这种写法不知道对不对,我看一般事务只提交一次。
最佳答案