嘗試生成如下所示的 jsonb 列:
["c:cluster-x", "ns:cluster-x/namespace-1"]
集群和命名空間將取自其他欄位。我正在努力尋找一種成功連接它的方法
陣列文字在這里也可以,就像這樣'{c:cluster-x, ns:cluster-x/namespace-1}'
我試過這樣的事情:
ALTER TABLE my_table ADD COLUMN resources jsonb GENERATED ALWAYS AS ('["c:"' || my_table."clusterName" || ']'::jsonb) STORED;
但得到:
Detail: Expected JSON value, but found "]".
postgres 版本 13.4
uj5u.com熱心網友回復:
您將單個字符轉換]為 jsonb。這就是您收到此錯誤的原因。此外,:鍵和值之間缺少(錯位?)。
這應該有效:
ALTER TABLE my_table ADD COLUMN resources jsonb
GENERATED ALWAYS AS (('[{"c":"' || "clusterName" || '"}]')::jsonb) STORED;
注意:如果列為 NULL,此解決方案將回傳clusterNameNULL。
演示:db<>fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491458.html
標籤:sql PostgreSQL jsonb 生成的列
