我定义了以下三种类型:
CREATE TYPE EventDescriptionType AS ENUM (
'felt report',
'Flinn-Engdahl region',
'local time',
'tectonic summary',
'nearest cities',
'earthquake name',
'region name'
);
CREATE TYPE ResourceReference AS (
"resourceID" varchar(255)
);
CREATE TYPE EventDescription AS (
"text" text,
"type" EventDescriptionType
);
我还创建了一个具有上述类型元素的表:
CREATE TABLE Event (
"Event_id" serial PRIMARY KEY,
"description" EventDescription ARRAY
);
然后,通过此命令在该表中插入一些数据后:
insert into Event values (1,'{'L','felt report'}');
我收到此错误:
错误:“ L”处或附近的语法错误
第1行:插入事件值(1,'{'L','感觉报告'}');
对于事件表中的元素“ dexcription”,我分别在EventDescription类型的“ text”和“ type”数组中将event1id作为'event_id'和'L'和'felt report'传递了。
有人可以让我知道正确的方法吗? 任何帮助,将不胜感激。
答案 0 :(得分:2)
您需要将数组类型强制转换为EventDescription[]
insert into Event values (1,
ARRAY[('L','felt report')]::EventDescription[]
);