如何将 varchar 插入 postgresql json 列
How to insert varchar into postgresql json column
我一直在苦苦思索如何将 table 插入到具有 JSON 列的 PG 中...
我正在从另一个 table 中提取一个位列,现在我想将该位插入到 json 列中,例如:
INSERT INTO TABLE (JSON) VALUES( '{"IsAllowed":"' || is_allowed::TEXT || '"}'::JSON )
is_allowed表示从另一个table...
我得到:
"column "XXX" is of type json but expression is of type text"
有谁知道我怎样才能做到这一点?
谢谢!
您的命令:
INSERT INTO TABLE (JSON) VALUES( '{"IsAllowed":"' || is_allowed::TEXT || '"}'::JSON )
正在将 '"}'
转换为 JSON。尝试添加一些括号:
INSERT INTO TABLE (JSON) VALUES( ('{"IsAllowed":"' || is_allowed::TEXT || '"}')::JSON )
注意:我无法复制您收到的错误(得到“令牌”“}”无效。)但使用括号时效果很好。
您应该使用 jsonb
而不是 json
,但这不是您问题的一部分。
PostgreSQL 不允许 bit
和 boolean
类型之间的双向转换。 bit
和 int
.
也是如此
请试试这个:
insert into table (json) values
(json_build_object('IsAllowed', is_allowed = 1::bit));
我一直在苦苦思索如何将 table 插入到具有 JSON 列的 PG 中... 我正在从另一个 table 中提取一个位列,现在我想将该位插入到 json 列中,例如:
INSERT INTO TABLE (JSON) VALUES( '{"IsAllowed":"' || is_allowed::TEXT || '"}'::JSON )
is_allowed表示从另一个table... 我得到:
"column "XXX" is of type json but expression is of type text"
有谁知道我怎样才能做到这一点?
谢谢!
您的命令:
INSERT INTO TABLE (JSON) VALUES( '{"IsAllowed":"' || is_allowed::TEXT || '"}'::JSON )
正在将 '"}'
转换为 JSON。尝试添加一些括号:
INSERT INTO TABLE (JSON) VALUES( ('{"IsAllowed":"' || is_allowed::TEXT || '"}')::JSON )
注意:我无法复制您收到的错误(得到“令牌”“}”无效。)但使用括号时效果很好。
您应该使用 jsonb
而不是 json
,但这不是您问题的一部分。
PostgreSQL 不允许 bit
和 boolean
类型之间的双向转换。 bit
和 int
.
请试试这个:
insert into table (json) values
(json_build_object('IsAllowed', is_allowed = 1::bit));