2012-02-04 11 views
0

私が知っている唯一の信頼できるMySQLのサポートはのnode-mysqlを通じてであり、それは特にマニュアルに書かれています:node.jsから長いMySQLクエリを実行する方法はありますか?

警告:セミコロンで区切られた複数のクエリとsql文はまだサポートされていません。

種類の吸います...私は または更新関わるいくつかのロジックを持つ時に多数の行を挿入する必要があるため

、それは簡単に一つの大きなMySQLのクエリはIF sおよびELSE Sを含むで行われています。私は単純に、すべてのロジックをnode.js側に移動するだけで、コードのパフォーマンスと複雑さが大幅に失われることはないと想像できません。だから私は純粋なSQLソリューションをあきらめる準備ができていません。

node.jsから大きなSQLクエリを比較的簡単に実行する方法はありますか?

+0

これは、MySQLを使用した1つのクエリでの複数の挿入について、これを参照してください。http://stackoverflow.com/questions/8899802/how-do-i-do-a-bulk-insert-in-mysql-using -node-js –

+0

各インサートに対してロジックを実行する必要があるため、バルクインサートは実際には機能しません。日付の比較やその他の変数に基づいて行を挿入するか既存のものを更新するかを決定します – Hubro

答えて

1

ロジックをストアドプロシージャ内で定義し、それを代わりに単一のステートメントとして呼び出すことができます(必要なパラメータを渡します)。

+0

それをどうやってやりますか?私は一度に5行から40行のすべてを受け取るフィードを持っています。データベースのすべての行(約1000行になる可能性があります)のステータスが「オフライン」に設定されていると、フィードのすべての行をデータベースに挿入する必要があります。それらは既に存在する可能性があるので、その場合は行内のすべての情報を更新する必要があります(一意の列を使用)。それ以外の場合は、明示的に挿入する必要があります。ストアドプロシージャでこれを行うことをどのようにお勧めしますか? – Hubro

+0

また、上記の手順で** no **データがテーブルからフェッチされることが重要です。それは現時点で私の主な問題であり、純粋なSQL(簡単なトランザクション)を使用したい理由です。 – Hubro

+0

期待する出力などを使って基本的なテーブル構造とテストデータを提供できますか?正しい道を下って?ありがとう。 – StudyOfCrying

関連する問題