2016-09-27 12 views
0

私は接続を作成し、connection.query(..)の後にnode.js mysqlパッケージを使用して接続を閉じます。node.js mysqlデータベースを更新します

私はmysqlデータベースで更新したい行のコレクションを持っていますが、行が存在するかどうかわかりません。ここで私は2つのソリューションを持っているが、私は1つが優れているか分からない:

  1. 私はmysqlデータベースに更新し、1 connection.query(..)を使用して、すべての行を挿入したいすべての行を削除します。..

    須藤コード:1.テーブルセットにテーブルからID = .. []、 2挿入、削除... IDが存在する場合には、I /挿入を更新すること

  2. チェック各行mysqlデータベースは、更新するクエリを送信し、そうでない場合は挿入します。

    sudo code:1.リスト内の各行について 2. mysqlに行が存在するかどうか確認します。 3.存在する場合は、クエリを更新に送信します。 が存在しない場合は、その後、第二の溶液のために

を挿入するために、クエリを送信、私はそれがあまりにも時間がかかる可能性懸念。いずれにもいくつかの提案がありますか?これを行う最善の方法は何ですか? 私はこれらのことが新しいので、forループ内で複数のクエリを送信する方が良いかどうか分かりません。特に、各connection.queryはコールバックを持つ関数です。どれが全体的なパフォーマンスを向上させるでしょうか、それとも他のソリューションですか?

+0

それはMySQLの:同時に両方の操作を行います。 '重複キーupdate' ..に挿入します。問題が解決しました。 –

答えて

0

使用insert ... on duplicate key update

例:

insert into `tableName` (col1, col2, col3) values ('v1', 'v2', 'v3') on dupicate key update `col3`='v3'

*この場合、キーはAUTO_INCREMENTカウンタである場合、これは動作しないでしょう。

出典:http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

関連する問題