postgresql中的文本[]?

postgresql中的文本[]?,postgresql,jdbc,Postgresql,Jdbc,我在Postgresql中看到一个字段text[](文本数组) 据我所知,它可以在一列中存储多个文本数据 我试着在手册中读更多关于它的内容:但不幸的是,关于text[]列类型没有什么内容 有人能帮我理解吗 如何向text[]列添加新值 当我们查询以检索text[]列的值时,结果集是什么? 编辑 我有一个表,其中包含两列组名和成员。每次有新成员加入组时,应将新成员的id插入该组名称的列成员中。这是我的要求。一个组可以包含'n'个成员 编辑2 巴勃罗让我用两张桌子代替。我可以知道如何使用两个不同

我在Postgresql中看到一个字段
text[]
(文本数组)

据我所知,它可以在一列中存储多个文本数据

我试着在手册中读更多关于它的内容:但不幸的是,关于text[]列类型没有什么内容

有人能帮我理解吗

  • 如何向text[]列添加新值
  • 当我们查询以检索text[]列的值时,结果集是什么?

    编辑
    我有一个表,其中包含两列组名成员。每次有新成员加入组时,应将新成员的id插入该组名称的列成员中。这是我的要求。一个组可以包含'n'个成员

    编辑2
    巴勃罗让我用两张桌子代替。我可以知道如何使用两个不同的表格来解决这个问题吗?现在我使用逗号(,)来存储多个由逗号分隔的值。这个方法错了吗


要插入新值,只需执行以下操作:

insert into foo values (ARRAY['a', 'b']);
假设您有这个表:

create table foo (a text[]);
每次执行一个
从foo中选择一个
时,您将有一个数组类型的列:

db1=> select a from foo;
   a   
-------
 {a,b}
(1 row)
如果希望从数组中获得特定元素,则需要使用下标(PostgreSQL中的数组基于1):


为PostgreSQL表选择数组数据类型时要小心。确保您不需要子表

非常感谢:)我有点怀疑。我以db1=>selectafromfoo的形式给出查询;所以我将得到我的结果集{a,b,c,d,e}。如果我想检查此集合中是否存在字符(随机字符),该怎么办?长字符串是否可以存储在text[]列类型中?它会有任何性能或存储问题吗?是的,您可以在
text[]
列中存储长文本(字符串)。我的建议是,如果您不是100%了解这些数组的用途,请避免使用它们。除非您有很好的理由使用数组,否则请使用纯
text
列。如果您想检查数组中的随机字符,请查看PostgreSQL中的数组函数。您是否考虑使用这500个数字的单独表?该列的语义是什么?那么我的建议是:不要使用数组列。只需使用两个表:
组成员
。和。PostgreSQL手册非常好(当然,一旦你知道你在寻找什么)。@muistooshort你能给我发一些参考资料,在那里有合适的例子。我觉得这本手册学习起来不是很友好。我是直接从手册中学到的。
db=> select a[1] from foo;
 a 
---
 a
(1 row)