Node.js で MySQL データベースにバッチデータを挿入する方法

Node.js で MySQL データベースにバッチデータを挿入する方法

プロジェクト(nodejs)では、一度に複数のデータをデータベースに挿入する必要があります。データベースはMySQLです。ループ挿入のパフォーマンスが悪すぎるため、バッチ挿入を使用してデータ挿入のパフォーマンスを向上させるようなものです。

バッチ挿入用のデータベースのテーブル構造は次のとおりです。

這里寫圖片描述

1. データベース接続

var mysql = require('mysql');
// データベース情報 var connection = mysql.createConnection({
 ホスト: 'localhost',
 ユーザー: 'データベースユーザー名',
 パスワード: 'データベースログインパスワード',
 データベース: '操作データベース名'
});

挿入されたデータをネストされた配列に変換する

たとえば、挿入する 2 つのデータ:

記録1:

出典:"インデックス" 
「www.alibaba.com」へ
ステータス:1
新着:0

記録2:

出典:"index1"
宛先:"www.google.com"
ステータス:1
新着:0

次の形式に変換します。

var値 = [
 ["インデックス","www.alibaba.com",1,0],
 ["インデックス1","www.google.com",1,0]
];

挿入文を書く

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

クエリ関数を呼び出してデータの挿入を完了します

connection.query(sql, [値], 関数 (err, 行, フィールド) {
 もしエラーが起きたら
    console.log('挿入エラー - ', err.message);
    戻る;
   }
   console.log("挿入成功");
});

完全なコード:

var mysql = require('mysql');
// データベース情報 var connection = mysql.createConnection({
 ホスト: 'localhost',
 ユーザー: 'データベースユーザー名',
 パスワード: 'データベースログインパスワード',
 データベース: '操作データベース名'
});
var値 = [
 ["インデックス","www.alibaba.com",1,0],
 ["インデックス1","www.google.com",1,0]
];
var sql = "url(`from`,`to`,`status`, `is_new`) の値にINSERT INTO ?";
connection.query(sql, [値], 関数 (err, 行, フィールド) {
 もしエラーが起きたら
    console.log('挿入エラー - ', err.message);
    戻る;
   }
   console.log("挿入成功");
});

同時に、トランザクションベースの操作をここに記録します(まだ実践していないため、具体的な効果は不明です)

トランザクションループを使用して挿入し、挿入が失敗した場合はロールバックします。

這里寫圖片描述

mysqlモジュール、connection.beginTransactionはトランザクションを実行するためのものです

次に、渡された配列に対してループ挿入や更新などの操作を実行する関数をここでカプセル化します。 1 つでも失敗した場合はロールバックし、すべてが正しければコミットします。

要約する

上記は、Node.js で MySQL データベースにバッチデータを挿入する方法について紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Node.js を使用して MySQL データベースに接続する例
  • node.js プラットフォームでの MySQL データベースの構成と接続
  • Node.js データベース操作: MySQL データベースのクエリ (パート 2)
  • Node.js データベース操作: MySQL データベースへの接続 (I)
  • node.js mysql データベース操作をゼロから学ぶ (V)
  • Node.jsはmysqlデータベースを操作して追加、削除、変更、クエリを実行します。
  • Linux で Node.js プログラム用に MySQL または Oracle データベースを構成する方法
  • Node.js 開発ガイド – Node.js は MySQL に接続し、データベース操作を実行します
  • node.js で MySQL データベースを操作する方法

<<:  ウェブサイトのコンテンツが検索エンジンに含まれないようにする方法

>>:  Vueバックグラウンド管理に多言語機能を追加する例

推薦する

JS 非同期スタック トレース: await が Promise よりも優れている理由

概要async/await と Promise の基本的な違いは、await fn() は現在の関数...

Dockerコンテナのいくつかの保存方法の詳細な説明

目次前面に書かれた複数のストレージマウント方法1.バインドマウント2. 巻数3.tmpfsマウントス...

MySQL テーブル結合クエリでグループ化と重複排除を実装する例

目次ビジネスロジックデータテーブル構造クエリロジックSQL スクリプトスクリプトの説明ビジネスロジッ...

MySQL可視化ツールNavicatへの接続方法

Navicatをインストールした後次のエラーが発生する場合があります: Client does no...

Javascriptでシンプルなナビゲーションバーを実装

この記事では、参考までに、シンプルなナビゲーションバーを実装するためのJavascriptの具体的な...

VueプロジェクトにPWAを導入する手順

目次1. 依存関係をインストールする2. vue.config.js ファイルで pwa を設定しま...

ネイティブ JavaScript でオブジェクトが空かどうかをチェックする実装例

目次ネイティブJavaScriptとはA. 新しいブラウザでnullオブジェクトをチェックするコンス...

Reactは複雑な検索フォームの展開と折りたたみ機能を実装します

時間に余裕を持って、過去を忘れましょう。前のセクションでは、[検索] フォームとクエリおよびリセット...

W3C チュートリアル (4): W3C XHTML アクティビティ

HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...

MySQL マルチテーブル結合入門チュートリアル

接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FOR...

Linux で MySQL 8.0 バージョンをアンインストールする方法

1. MySQLをシャットダウンする [root@localhost /]# サービスmysqldを...

入力が完了したことを検出し、次のコンテンツを自動的に入力する HTML を実装する方法

前回の記事では、入力完了の簡単な検出を実現しましたが、今回はさらに一歩進んで、入力が完了した後に次の...

記事では、js を使用して弾幕効果を実現する方法を説明します

目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...

インタビュアーはCSSで固定アスペクト比を実現する方法を尋ねました

この質問に関連するニーズはまだないかもしれませんし、面接でこの質問をされたことがないかもしれませんが...

Vue マウスホイールスクロール切り替えルーティング効果を実装する方法

ルート ルーティング コンポーネント (アプリの下のルート ルーティング コンポーネント。子コンポー...