【问题标题】:Update multiple columns from input in postgres table using pg and express.js in a single query在单个查询中使用 pg 和 express.js 从 postgres 表中的输入更新多个列
【发布时间】:2021-12-25 03:10:25
【问题描述】:

我有一个包含表事件的 postgres 数据库。我希望用户能够通过输入更新此表的任何一列或多列。以下代码的问题是,当用户更新时,例如,wedding_name 列和 otherones 没有收到任何值,我的行在收到新值的列上成功更新。但是,其余列会变空,因为它们没有接收输入。因此,如果可能的话,我希望能够在单查询中更新一列,而不会影响未触及的列。 谢谢。

modifyEvent:async(req, res)=>{
        try {
           const eventId= req.params.eventId 
           const {weddingName,groom,bride,location,date,}=req.body
           const updatedEvent=pool.query('UPDATE events SET wedding_name=$1,bride_name=$2,groom_name=$3,wedding_location=$4,wedding_date=$5 WHERE wedding_id=$6',[
               weddingName,bride,groom,location,date,eventId
           ])
           res.json(updatedEvent)
        } 
        catch (error) {
            console.log(error.message)
        }
    }

【问题讨论】:

    标签: postgresql express pg


    【解决方案1】:

    你可以试试这样的:

    const updatedEvent=pool.query('UPDATE events SET wedding_name=COALESCE($1, wedding_name), bride_name=COALESCE($2, bride_name), groom_name=COALESCE($3, groom_name), wedding_location=COALESCE($4, wedding_location), wedding_date=COALESCE($5, wedding_date) WHERE wedding_id=$6',[weddingName,bride,groom,location,date,eventId])
    

    【讨论】:

      猜你喜欢
      • 2016-09-15
      • 2011-02-11
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      相关资源
      最近更新 更多