【发布时间】:2017-02-02 15:39:31
【问题描述】:
我有以下代码,将数据插入我的表 res(ID bigserial, 结果 jsonb 不为空)。我想插入数据,以便“显示”列始终附加“i”,以便每一行都有不同的“显示”列值。
DO $$
declare cnt bigint;
BEGIN
FOR i IN 1..2 LOOP
INSERT INTO res (Results)
VALUES ('{"cid":"CID1","Display":"User One'|| i || '","FName":"Userfff","LName":"One"}');
INSERT INTO res (Results)
VALUES ('{"cid":"CID1","Display":"User One'|| i || '","FName":"Userfff","LName":"One"}');
INSERT INTO res (Results)
VALUES ('{"cid":"CID1","Display":"User One'|| i || '","FName":"Userfff","LName":"One"}');
END LOOP;
END;
$$
LANGUAGE plpgsql;
但是,当我运行此代码时,我收到以下错误:
ERROR: column "results" is of type jsonb but expression is of type text
LINE 2: VALUES ('{"cid":"CID1","Display":"User One'|| i ...
^
HINT: You will need to rewrite or cast the expression.
我应该如何修改我的查询以使查询成功运行?
【问题讨论】:
-
您的循环将插入 6 行,其中 3 行具有相同的
Display值,这真的是您想要的吗?
标签: postgresql jsonb