【问题标题】:SQL statement for multiple row UPDATE in nodejs using node-pg library使用node-pg库在nodejs中进行多行UPDATE的SQL语句
【发布时间】:2022-01-12 18:06:53
【问题描述】:

我的问题与UPDATE multiple rows from multiple params in nodejs/pg 相同,但是我面临着作者在 cmets 中指出的问题。

基本上,我想执行多行更新并拥有这样的对象数组

const arr = [
  { image_id: 1, image_url: "xyz.com/image" }
]

现在我想使用该数组来生成 SQL 语句,但就像上面链接中的作者一样,我不知道如何将对象数组变成 SQL 期望的元组数组。

【问题讨论】:

    标签: node.js postgresql


    【解决方案1】:

    以下方法有效,但我必须将数据结构更改为:

    {
        "images": ["xyz.com/image"],
        "ids": [2]
    }
    
    UPDATE collection_images as ci 
    SET image_url = new.image_url 
    FROM (SELECT UNNEST($1::VARCHAR[]) as image_url, UNNEST($2::INT[]) as image_id) as new
    WHERE ci.id = new.image_id
    RETURNING *;
    

    但我仍然想知道是否有不改变原始数据结构的方法

    【讨论】:

    • 请注意,这不会返回所有更新的行。最后的RETURNING * 只会返回最后修改的行。
    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 2020-04-18
    • 2016-05-08
    • 2012-06-16
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多