防止 MySQL 行一次更新两次? (nodejs mysql)
Posted
技术标签:
【中文标题】防止 MySQL 行一次更新两次? (nodejs mysql)【英文标题】:Prevent that a MySQL row updates two times at once? (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() 中)来调查这是否在第一次更新后的几毫秒内发生,但它在同一时刻发生,如下所示:
其他拍卖只更新一次,我不知道为什么。
【问题讨论】:
你能记录传入的请求并检查它们是否来过两次吗?基本上,这不是服务器端的问题。 【参考方案1】:我的问题是我SELECT
ed 数据并没有使用GROUP BY
,而我在之前的SELECT
语句中使用了LEFT JOIN
。所以他两次选择了同一行。
【讨论】:
以上是关于防止 MySQL 行一次更新两次? (nodejs mysql)的主要内容,如果未能解决你的问题,请参考以下文章