gpt4 book ai didi

mysql - 如果 Node js存在mysql中则忽略更新数据

转载 作者:可可西里 更新时间:2023-11-01 11:25:08 26 4
gpt4 key购买 nike

我将检查我的数据的 id,如果存在于 mysql 中更新它,如果不创建它,但在选择结果中它不起作用并且大多数时候转到​​ esle 部分并创建操作并得到重复条目错误。最后我通过无限循环运行这个文件。当我在 redis 中有大量数据时,我应该告诉这个问题会发生。

如果能帮到我,我会很高兴,谢谢:)

这是我的代码:

var 
mysql = require('mysql'),
redis = require('redis'),
infiniteLoop = require('infinite-loop'),
client = redis.createClient(),
lop = new infiniteLoop,
config = require( __dirname + '/app/Config').config,

con = function() {

return mysql.createConnection({
host : config.db_host,
user : config.db_user,
password : config.db_pass,
database : config.db_name
});

},

insertDB = function( data ) {

var connection = con();

connection.connect( function( err ) {

connection.query( 'SELECT * FROM real_user WHERE id =' + data.id, function( err, res ) {

if ( err ) {

data = JSON.stringify(data);

client.lpush('aipi', data, function(err,reply) {
if ( err ) throw err;
});

}

console.log( "out", data.id, res.length, res );

if ( typeof res != 'undefined' && res.length > 0 ) {

console.log( "update", data.id );

connection.query( 'UPDATE real_user SET ? WHERE id =' + res[0].id, { request_count: data.request_count, updated_at: data.created_at },
function( err, res ) {
if ( err ) throw err;
});

} else {

console.log( "create", data.id );

connection.query( 'INSERT INTO real_user SET ?', data, function( err, res ) {
if ( err ) throw err;
});
}
connection.end();

});

});

},

run = function() {

var data;

client.brpop('aipi', 0, function(err, reply) {

if ( reply[1] ) {

data = JSON.parse(reply[1]);

insertDB(data);
}

});

};

lop.add(run, []).run();

最佳答案

修复:

关于重复 key 更新

connection.connect( function( err ) {

connection.query( "INSERT INTO real_user SET ? ON DUPLICATE KEY UPDATE updated_at = '" + data.created_at
+ "', request_count = '" + data.request_count + "'",
data, function( err, res ) {
connection.end();
});

});

关于mysql - 如果 Node js存在mysql中则忽略更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46628616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com