postgres:插入自定义类型的数组

postgres: inserting array of custom type

我有:


CREATE TYPE Person AS (given_name VARCHAR,
                       family_name VARCHAR);
CREATE TYPE Contributors AS (directors person[],
                             actors person[]) ;
CREATE TABLE Catalogue (id serial, contributors Contributors)

我想将以下数组文字插入到目录 table 的 contributors 字段中:

({},{(Song,Kang-ho),(Omar,Sharif)})

通过 JDBC Driver's PGobject 值,但我很难做到。

我遇到过这个 ,我有点理解这个问题。

我尝试了以下方法:

({}, "{(Song,Kang-ho),(Omar,Sharif)}")

但我得到了:

ERROR: malformed record literal: "(Song" Detail: Unexpected end of input.

所以我尝试了:

'({},"{(Song,Kang-ho),(Omar,Sharif)}")'

还有:

'({},"{'(Song,Kang-ho)','(Omar,Sharif)'}")'

但是我得到这个错误:

ERROR: malformed record literal: .... Detail: Missing left parenthesis.

用于数组文字内的嵌套行字段的语法是什么?

很难弄清楚你到底在尝试什么,因为你只展示了陈述的一部分,而且不清楚你展示的部分在整体中的位置。

这个有效:

insert into catalogue values  (1,('{}', '{"(Song,Kang-ho)","(Omar,Sharif)"}'));

这也是:

insert into catalogue values  (1,'({},"{""(Song,Kang-ho)"",""(Omar,Sharif)""}")');