1
我有一個數據庫,其中包含大量引用非現場圖像的JSON blob。Postgres 9.6 - 更新存儲在JSONB內部的文本
表:
CREATE TABLE vendors (
id uuid NOT NULL,
name character varying(255) NOT NULL,
images jsonb[],
location jsonb,
user_id uuid,
created timestamp with time zone,
updated timestamp with time zone
);
的JSON:
{
"url": "http://domain.com/eid/id/file.jpg",
"title": "foo",
"eid": "eid",
"id": "id"
}
這些圖像現在從http感動://到https://開頭,我想更新到數據。我最終會完全刪除域名,因此這些都是相對路徑,從而避免了這種大屠殺!
我想做得非常粗糙的,如:
UPDATE vendors SET images = REPLACE(images, 'http://', 'https://');
但是我看到了以下錯誤:
LINE 1: UPDATE vendors SET images = REPLACE(images, 'http://','https...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
我猜問題是類型轉換部分,但我無法弄清楚。
您需要向我們展示'images'的JSON結構。 –
類型'ARRAY'包含'JSONB' – uniquelau
爲什麼JSONB _array_?爲什麼不使用一個簡單的JSONB列,它包含_contains_一組json元素?這是重複的去標準化 –