【问题标题】:Prevent that a MySQL row updates two times at once? (nodejs mysql)防止 MySQL 行一次更新两次? (nodejs mysql)
【发布时间】:2015-07-12 23:56:10
【问题描述】:

我的服务器 nodejs 文件中有这段代码,用于使用 mysql 模块更新 mysql 数据库中的一行,其中 mysql 模块使用每秒更新的 socket.io:

var query_update = mysql.query('UPDATE `auctions` \
SET `random` = ?,`price`= ?,`datetime` = ? WHERE `id` = ?', \
[rand, price, t, auction.id]);  
console.log('\n'+time()+query_update.sql+'\n'); 

我不知道为什么,但某些特定的行条目会一次更新两次。有没有办法以某种方式防止这种情况? 也许甚至 mysql-wise 一行只能每 x 秒更新一次?

我还使用毫秒作为 console.log 输出(在函数 time() 中)来调查这是否在第一次更新后的几毫秒内发生,但它在同一时刻发生,如下所示:

其他拍卖只更新一次,我不知道为什么。

【问题讨论】:

  • 你能记录传入的请求并检查它们是否来过两次吗?基本上,这不是服务器端的问题。

标签: javascript mysql node.js websocket socket.io


【解决方案1】:

我的问题是我SELECTed 数据并没有使用GROUP BY,而我在之前的SELECT 语句中使用了LEFT JOIN。所以他两次选择了同一行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2013-09-23
    • 2014-01-20
    • 2013-08-08
    • 2017-05-27
    • 1970-01-01
    相关资源
    最近更新 更多