使用同一行Postgres中的jSON值更新新列

时间:2013-09-25 17:52:54

标签: postgresql sql-update

我有一张20k产品的桌子。在此表中,我有一个jSON列,其中包含有关该产品的若干信息。我必须根据我的老板的要求添加一个新列,其中包含模型名称(在jSON中)。 我该怎么做? 我的表产品有id =产品ID product_description = jSON,包含有关产品的许多详细信息 现在是我的老板希望在jSON之外可用的新列model_name

我经常做这个查询:

SELECT "productInfo"->'product_info'->>'model_name' AS model_name FROM inv.product WHERE id = 1

获取model_name

我想更新所有产品,因此model_name现在位于新列model_name中,但我不能这样做,因为我不熟悉批量更新。

我想用文字做的是:

UPDATE inv.product SET model_name = ( QUERY TO SELECT THE VALUE OF THE model_name ) FOR EACH ROW

1 个答案:

答案 0 :(得分:2)

尝试类似:

UPDATE inv.product
SET model_name = "productInfo"->'product_info'->>'model_name'
WHERE id = 1;

UPDATE inv.product
SET model_name = "productInfo"->'product_info'->>'model_name';

如果您要更新inv.product

中的所有记录