如果不存在,如何插入,如果存在,如何更新(更新)?

时间:2018-08-09 07:14:13

标签: mysql node.js

我目前对以下内容感到困惑:

var post = {ip: host, status: info};
var sql = con.query('INSERT OR IGNORE INTO ipaddress SET ?', post, 
function(err, result){});

我已经将IP地址设置为主键。

1 个答案:

答案 0 :(得分:1)

续集

既然您使用的是node.js,那么如何使用Sequelize

  

Sequelize是用于Node.js v4及更高版本的基于承诺的ORM。它支持方言PostgreSQL,MySQL,SQLite和MSSQL,并具有可靠的事务支持,关系,读取复制等功能。

您不太了解SQL并不重要,因为您可以使用其内置函数。例如,如果您要执行upsert

ipaddress.upsert({
    ip: host,
    status: info,
});

纯MySQL

如果您仍然想使用MySQL,请使用ON DUPLICATE KEY UPDATE进行upsert。

var sql = `INSERT INTO post (ip, status) VALUES (${host}, ${info}) ON DUPLICATE KEY UPDATE ip=${host}, status=${info}`;

但是您需要注意一些潜在的问题,例如SQL注入。