5

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

据我了解,它可以在单个列中存储多个文本数据。

我试图阅读更多关于它的手册:http ://www.postgresql.org/docs/current/static/datatype-character.html但不幸的是,关于 text[] 列类型没有太多内容。

所以谁能帮我理解

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

    编辑
    我有一个包含 2 列group_namemembers的表。每次有新人加入群组时,新人的 id应插入该 group_name的列成员中。这是我的要求。一个组可以包含“n”个成员

    EDIT 2
    Pablo 要求我改用两张桌子。我可以知道如何通过使用两个不同的表来解决这个问题吗?现在我使用 comma(,) 来存储用逗号分隔的多个值。这个方法错了吗?

4

1 回答 1

3

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

insert into foo values (ARRAY['a', 'b']);

假设你有这个表:

create table foo (a text[]);

每次执行 aselect a from foo时,都会有一列类型为数组:

db1=> select a from foo;
   a   
-------
 {a,b}
(1 row)

如果要从数组中获取特定元素,则需要使用下标(PostgreSQL 中的数组是从 1 开始的):

db=> select a[1] from foo;
 a 
---
 a
(1 row)

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

于 2012-05-17T12:02:34.453 回答