如何使用pgAdmin在PostgreSQL中创建复合类型?

时间:2013-12-11 07:18:04

标签: postgresql pgadmin

我对postgres很新。基本上我要做的是有一个表,其中每个条目基本上包含一个结构(在C-parlance中)或一个对象。

我相信这被称为复合型?无论如何,它基本上就像这样(伪代码):

user_name = {
    my_int_value    : 100,
    my_string_value : "some string",
    my_array        : (1, 2, 3, 4, 5, 6)
}

我正在使用pgAdmin来解决问题。

问题是,当我添加一个表然后去添加一个列时,我看不到任何似乎代表这种数据结构的数据类型。我认为有一种复合类型基本上让我这样做。

我的主要目标是能够通过pgAdmin做到这一点,但如果根本不可能,我会接受其他想法,以便采取最简单的方法。

1 个答案:

答案 0 :(得分:1)

设计看起来非常奇怪 - 您可能应该阅读规范化。

首先需要创建这样的类型才能使用它。我不使用pgAdmin,所以我不知道UI是什么样的,但是这样做的SQL会是这样的:

create type user_name as
(
  my_int_value integer,
  my_string_value text,
  my_array int[]
);

create table foobar
(
  id integer not null primary key,
  some_column text,
  the_name user_name
);

insert into foobar (id, some_column, the_name)
values
(1, 'foo', (1, 'bar', array[1,2,3]));