如何使用if条件从节点js插入和更新数据到postgresql

时间:2017-05-11 11:51:12

标签: node.js postgresql

如果数据已存在于数据库中并且“INSERT”即创建新的user_Id并使用IF条件插入数据,则必须在postgresql中“更新”数据。我试过这个,但我没有得到输出。如果你知道,请帮助我。

if(data.Details){
    db.query('UPDATE Details SET fullName = $2,address= $3,phone = $4 WHERE user_id = $1 RETURNING *', [query, data.Details.fullName, data.Details.address, data.Details.phone],function(err,details) {
                if (err) return callback(new Error('error'));
             })
}else{
db.query('INSERT INTO Details(user_id,fullName,address,phone) VALUES($1,$2,$3,$4) RETURNING *', [query, data.Details.fullName, data.Details.address, data.Details.phone],function(err,details) {
                                if (err) return callback(new Error('error'));

                            })
}

1 个答案:

答案 0 :(得分:1)

如果你想获得幻想,你也可以在Postgres 9.5及更高版本中使用UPSERT/ON CONFLICT

为这个确切的用例设计,并作为单个"指令"执行,而不是必须执行查询检查是否存在某些内容,另一个更新或者在交易中插入。