濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的方法

Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的方法

熱門(mén)標(biāo)簽:龍圖酒吧地圖標(biāo)注 地圖標(biāo)注圖標(biāo)素材入駐 百度地圖標(biāo)注地方備注 400電話(huà)申請(qǐng)什么好 怎么辦理400電話(huà)呢 電銷(xiāo)機(jī)器人價(jià)格多少錢(qián)一臺(tái) 電話(huà)機(jī)器人免費(fèi)嗎 怎么申請(qǐng)400電話(huà)申請(qǐng) 好搜地圖標(biāo)注

項(xiàng)目(nodejs)中需要一次性插入多筆數(shù)據(jù)到數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)是mysql的,由于循環(huán)插入的性能太差,就像使用批量插入的方法提高數(shù)據(jù)的插入性能。

批量插入的數(shù)據(jù)庫(kù)的表結(jié)構(gòu)如下:

1.數(shù)據(jù)庫(kù)連接

var mysql = require('mysql');
// 數(shù)據(jù)庫(kù)信息
var connection = mysql.createConnection({
 host  : 'localhost',
 user  : '數(shù)據(jù)庫(kù)用戶(hù)名',
 password : '數(shù)據(jù)庫(kù)登錄密碼',
 database : '操作數(shù)據(jù)庫(kù)名'
});

將插入數(shù)據(jù)轉(zhuǎn)換成嵌套數(shù)組

例如要插入的兩條數(shù)據(jù):

記錄1:

from:"index" 
to:“www.alibaba.com”
status:1
is_new:0

記錄2:

from:"index1"
to:"www.google.com"
status:1
is_new:0

轉(zhuǎn)為一下格式:

var values = [
 ["index","www.alibaba.com",1,0],
 ["index1","www.google.com",1,0]
];

編寫(xiě)插入語(yǔ)句

var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";

調(diào)用query函數(shù)完成數(shù)據(jù)的插入

connection.query(sql, [values], function (err, rows, fields) {
 if(err){
    console.log('INSERT ERROR - ', err.message);
    return;
   }
   console.log("INSERT SUCCESS");
});

完整代碼:

var mysql = require('mysql');
// 數(shù)據(jù)庫(kù)信息
var connection = mysql.createConnection({
 host  : 'localhost',
 user  : '數(shù)據(jù)庫(kù)用戶(hù)名',
 password : '數(shù)據(jù)庫(kù)登錄密碼',
 database : '操作數(shù)據(jù)庫(kù)名'
});
var values = [
 ["index","www.alibaba.com",1,0],
 ["index1","www.google.com",1,0]
];
var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";
connection.query(sql, [values], function (err, rows, fields) {
 if(err){
    console.log('INSERT ERROR - ', err.message);
    return;
   }
   console.log("INSERT SUCCESS");
});

同時(shí)在這里記錄一個(gè)基于事務(wù)的操作(還沒(méi)有實(shí)踐,具體效果不詳)

用事務(wù)循環(huán)插入、如果有一條插入失敗進(jìn)行回滾

mysql模塊、connection.beginTransaction是做事務(wù)

然后我這里封裝了一個(gè)函數(shù)、對(duì)傳入的數(shù)組做循環(huán)插入或更新之類(lèi)的操作、如果有一條失敗了就回滾、全對(duì)了就commit

總結(jié)

以上所述是小編給大家介紹的Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Node.js實(shí)現(xiàn)連接mysql數(shù)據(jù)庫(kù)功能示例
  • node.js平臺(tái)下的mysql數(shù)據(jù)庫(kù)配置及連接
  • Node.js數(shù)據(jù)庫(kù)操作之查詢(xún)MySQL數(shù)據(jù)庫(kù)(二)
  • Node.js數(shù)據(jù)庫(kù)操作之連接MySQL數(shù)據(jù)庫(kù)(一)
  • 從零學(xué)習(xí)node.js之mysql數(shù)據(jù)庫(kù)的操作(五)
  • Node.js操作mysql數(shù)據(jù)庫(kù)增刪改查
  • Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫(kù)的方法
  • node.js 開(kāi)發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫(kù)操作
  • node.js如何操作MySQL數(shù)據(jù)庫(kù)

標(biāo)簽:浙江 廣西 溫州 防疫工作 固原 汕尾 內(nèi)江 撫順

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的方法》,本文關(guān)鍵詞  Node.js,下向,MySQL,數(shù)據(jù)庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    吴江市| 勐海县| 龙南县| 平定县| 孟津县| 宜春市| 图片| 茂名市| 浦城县| 光泽县| 文山县| 容城县| 沂水县| 阜康市| 昔阳县| 南城县| 屯留县| 周宁县| 辽阳县| 长兴县| 虎林市| 建德市| 芦溪县| 漯河市| 黎川县| 岐山县| 科技| 河北省| 乌什县| 独山县| 新竹市| 池州市| 曲松县| 康马县| 耒阳市| 鄂托克旗| 萨嘎县| 东丰县| 敦化市| 邵武市| 会宁县|