我有一排,讓它是這種格式
DECLARE
a t1%ROWTYPE;
BEGIN
SELECT * INTO a FROM t1 WHERE id=<some_id>
-- a = id: <some_id>, name: "some_name", description: "some_descr"
END;
我需要每列插入一行t2
t2 TABLE
column_name TEXT, value JSONB
例外結果:
column_name | value
--------------------
id | '"some_id"'
name | '"some_name"'
description | '"some_descr"'
我該怎么做?
uj5u.com熱心網友回復:
不需要 PL/pgSQL 或回圈。您可以將行從 t1 轉換為 JSON 值,然后將這些鍵/值對轉換為行:
insert into t2 (column_name, value)
select x.col, to_jsonb(x.val)
from t1
cross join jsonb_each_text(to_jsonb(t1)) as x(col, val)
where t1.id = 42;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/492796.html