Postgresql:与存储函数中的JSON参数合并时出现语法问题
当我有json输入时面临语法问题,需要将json中的值插入/更新到表中,表是一个视图 预期的Postgresql:与存储函数中的JSON参数合并时出现语法问题,sql,postgresql,Sql,Postgresql,当我有json输入时面临语法问题,需要将json中的值插入/更新到表中,表是一个视图 预期的 当主id与项目id(PK)匹配时,更新其相应的值 当主id与项目id(PK)不匹配时-插入视图 样本SP drop function if exists sp_post_itemsx; CREATE FUNCTION sp_post_itemsx(i_data jsonb) RETURNS VOID AS $function$ BEGIN MERGE INTO vw_item_status_de
drop function if exists sp_post_itemsx;
CREATE FUNCTION sp_post_itemsx(i_data jsonb)
RETURNS VOID
AS $function$
BEGIN
MERGE INTO vw_item_status_detail
USING
(SELECT
i_data->>'fulfillerId' fulfillerId,
t->>'itemId' itemId,
i_data->>'orderId' orderId,
1000,
t->>'skuCode' skuCode,
t->>'decorationTechnology' decorationTechnology,
(t->>'quantity')::numeric quantity ,
NOW()
FROM jsonb_array_elements(i_data -> 'items')) as t ON item_id = t.itemId
WHEN MATCHED THEN UPDATE SET
vw.quantity = t.quantity
WHEN NOT MATCHED THEN
INSERT INTO vw_item_status_detail(
fulfiller_id,
item_id,
order_id,
status_id,
sku_code,
decoration_technology,
quantity,
item_updated_time)
SELECT
i_data->>'fulfillerId' fulfillerId,
t->>'itemId' itemId,
i_data->>'orderId' orderId,
1000,
t->>'skuCode' skuCode,
t->>'decorationTechnology' decorationTechnology,
(t->>'quantity')::numeric quantity ,
NOW()
FROM jsonb_array_elements(i_data -> 'items') t ;
END;
$function$
LANGUAGE plpgsql;
错误:“vw\ U项目\状态\详细信息”不是已知变量
不确定语法有什么问题,或者合并不适用于insert for views表Postgres中没有
MERGE
语句找到此url和许多其他url供参考@一匹没有名字的马如果合并不是一个选项,有没有其他最佳且简单的方法来完成类似的任务@一个没有名字的马好吧,当前应该是你当前支持的语句的参考,而不是邮件列表上的讨论,如果或者如何实现这样的事情。另一种选择是插入。。。在冲突()时,请执行更新
。