我特灵用Postgres一次更新多行。
此查询有效
const updateQuery = `
UPDATE dating.photos
SET
ordering = nv.ordering,
profile = nv.profile
FROM
( VALUES
('ddb73491-b582-4ff5-afb4-e57e31917b03', 4, false),
('9cd57b09-17ff-4b88-b08f-b1ef02ec8c1d', 2, false),
('02d9d7e2-2601-4e6f-b7d4-ddebdbee420d', 3, false),
('5e04ff58-8f85-43f8-a4ca-dfde85da9e6f', 1, true)
) AS nv (photoname, ordering, profile)
WHERE photos.photoname = nv.photoname`
我现在尝试使用pg-format将数据加载到UPDATE中,以便对数据进行清理。
注意:我见过pg-format(postgres format())与SELECT和INSERT一起使用,但我不能100%确定它是否可以与UPDATE一起使用。
我尝试过像这样加载数组:
const myNestedArray = [
[
"ddb73491-b582-4ff5-afb4-e57e31917b03",
1,
true
],
[
"9cd57b09-17ff-4b88-b08f-b1ef02ec8c1d",
2,
false
]
]
我尝试过像这样加载数组:
const myNestedArray = [
(
"ddb73491-b582-4ff5-afb4-e57e31917b03",
1,
true
),
(
"9cd57b09-17ff-4b88-b08f-b1ef02ec8c1d",
2,
false
)
]
这是我正在使用的查询...您可以看到值的%L
// Update Photo Order
const query = format(
`
UPDATE dating.photos
SET
ordering = nv.ordering,
profile = nv.profile
FROM
( VALUES %L
) AS nv (photoname, ordering, profile)
WHERE photos.photoname = nv.photoname`,
myNestedArray
)
我收到错误“订购照片错误:错误:列“ordering”的类型为smallint,但表达式的类型为text
...它似乎没有将值与列正确匹配。
有什么想法吗?
谢谢亚当
1条答案
按热度按时间ni65a41a1#
我在
pg-format
中也遇到了同样的问题,如果它要用于格式化嵌套数组数据,而这些数据的每个值都有不同的数据类型,我认为pg-format
无法处理它