繁体   English   中英

在postgresql中将数据插入到表的用户定义的类型元素中

[英]Insert data into user-defined type elements of a table in postgresql

我已经定义了3种类型如下:

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”,我将'1'分别作为event_id和'L'和'感觉报告'传递给数组,分别用于“文本”和“类型”的事件描述类型。

有人可以告诉我这样做的正确方法吗? 任何帮助,将不胜感激。

您需要将数组类型转换为EventDescription[]

insert into Event values (1,
                          ARRAY[('L','felt report')]::EventDescription[]
                          );

sqlfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM