これは非常に奇妙です。コードは小切手のちょっと500行ですが、それは、私はそれが間違ったインクリメントNodejsとMySQLはバルク挿入用のループをループしています
var data = API.data
_.forEach(data, function (member, index, array) {
var todoArray = []
var todoNum = 0
_.forEach(member.todos, function (spell, index, array) {
.. bla bla bla
todoArray.push([
...stuff,
todoNum
])
todoNum++
})
i.connection.query('INSERT INTO `static_todos` (`key`, `name`, `description`..) VALUES ? ON DUPLICATE KEY UPDATE `name` = VALUES(`name`)...;', [todoArray], function (err, result, fields) {
// Throw stuff
})
})
を重要ではないことを、lodash使用しています。この
にまとめしかし、私はデータベースに行くとき、行も同様に、スクランブルされていますtodoNum
とします。私は何が起こっているのか分かりません..
編集; 2番目のforEach
がtodoArray
と表示された後にログを印刷すると、正しい番号と正しい順序が表示されます。
あなたのスキーマはどのように見えますか? MySQLは、あなたが 'ORDER BY'節を持っていない限り、特定の順序で何かを返す義務はありません。 – tadman
ああ神様...ごめんなさい、私はばかだ、このためのボタンがある。ループ内にクエリを置くと、その前に一括して挿入された数字が大丈夫だった。質問を削除する必要がありますか? – dev
こんにちは、問題を解決するには残念です。質問をいつでも削除することができます。または、問題が解決した場合はその解決策を説明する回答を提供することができます。 – tadman