这个问题在这里已经有答案了:
“insert ignore”与“insert…on duplicate key update”(12个答案)两年前关门了。我现在有一个困惑:
var post = {ip: host, status: info}; var sql = con.query('INSERT OR IGNORE INTO ipaddress SET ?', post, function(err, result){});
我已经将ip地址设置为主键。
yv5phkfx1#
既然您使用的是node.js,那么使用sequelize怎么样?sequelize是node.jsv4及更高版本的基于承诺的orm。它支持postgresql、mysql、sqlite和mssql语言,并具有可靠的事务支持、关系、读取复制等功能。如果你对sql不太了解也没关系,因为你可以使用它的内置函数。例如,如果要执行 upsert :
upsert
ipaddress.upsert({ ip: host, status: info, });
如果您仍然想使用mysql,请使用 ON DUPLICATE KEY UPDATE 向上插入。
ON DUPLICATE KEY UPDATE
var sql = `INSERT INTO post (ip, status) VALUES (${host}, ${info}) ON DUPLICATE KEY UPDATE ip=${host}, status=${info}`;
但是您需要注意一些潜在的问题,比如sql注入。
1条答案
按热度按时间yv5phkfx1#
续集
既然您使用的是node.js,那么使用sequelize怎么样?
sequelize是node.jsv4及更高版本的基于承诺的orm。它支持postgresql、mysql、sqlite和mssql语言,并具有可靠的事务支持、关系、读取复制等功能。
如果你对sql不太了解也没关系,因为你可以使用它的内置函数。例如,如果要执行
upsert
:纯mysql
如果您仍然想使用mysql,请使用
ON DUPLICATE KEY UPDATE
向上插入。但是您需要注意一些潜在的问题,比如sql注入。