一次写多行

时间:2018-01-23 07:22:52

标签: angularjs ionic-framework

我正在使用离子v1和angularjs并使用foreach循环向数据库添加值,但它对我来说很慢(500次执行此循环)。

工厂1:

self.query = function(query, parameters) {
    return $cordovaSQLite.execute(db, query, parameters).then(function(result) {
       //console.log(result);
        return result;
    }, function (error) {
        console.log(error);
        return error;
    });
};

工厂2:

self.add = function (url,data) {
  return DBA.query("INSERT OR REPLACE INTO offline_data (id, data) VALUES (?, ?)", [url, JSON.stringify(data)]);
};

通过以下方式添加db:

   angular.forEach(result.style_list, function(value){
              OfflineDataService.add(value.style_id, value)
   });

我们如何才能更快......

1 个答案:

答案 0 :(得分:0)

听起来你需要找到一种方法来进行批量插入,即在单个SQL语句中执行许多插入:

INSERT OR REPLACE INTO offline_data (id, data) 
    VALUES (?, ?), (?, ?), (?, ?), ...

这将取决于您的数据库及其支持的内容,但如果确实如此,您可以批量处理数据,一次插入50行的批次。