Postgres 将数据插入复合类型

问题描述 投票:0回答:1

我在 Postgres 工作。我有以下复合类型

CREATE TYPE negotiation.diff_type AS (
  operation int,
  content text
);

下面是我的桌子

CREATE temp TABLE temp_input (indication_request_id int, para_id int, line_number int, document_id int, modified_content text, created_by text, diffs diff_type[]);

在表中我使用 diffs 复合类型。

下面我正在向表中插入数据。

INSERT INTO temp_input (myid, para_id, line_number, document_id,modified_content,created_by, diffs)
values (20,2893,10,18,'my content','user1', '{(1,"DDD")"}');

这给了我一个错误

错误:格式错误的数组文字:“{(1,”DDD”)”}”

sql arrays postgresql syntax-error composite-types
1个回答
1
投票

您需要用引号将数组的每个元素括起来,然后对复杂类型的文字内的引号进行转义:

INSERT INTO temp_input
(indication_request_id, para_id, line_number, document_id,modified_content,created_by, diffs)
VALUES (20,2893,10,18,'my content','user1', '{"(1,\"DDD\")"}');

SQLFiddle 演示

© www.soinside.com 2019 - 2024. All rights reserved.