PostgreSQL 中是否有可用的多值字段类型?

发布于 2024-12-12 05:40:40 字数 223 浏览 0 评论 0原文

我想知道是否可以在 PostgreSQL 的一个字段中存储多个值。

我有一个名为 Token 的表,其中包含 idtextcategory 列。 category 是一个多值字段。是否有必要为其创建一个单独的表,或者是否有办法将其存储在Token表中?

I want to know if it is possible to store multiple values in a field in PostgreSQL.

I have a table called Token with the columns id, text and category. category is a multivalued field. Is it necessary to create a separate table for it or is there a way to store it in the Token table?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

℉絮湮 2024-12-19 05:40:40

PostgreSQL 中有数组。例如:

CREATE TABLE "token" (
  "id"       integer PRIMARY KEY,
  "text"     text,
  "category" text[]
);

现在您可以将每行的多个类别插入到 token 中:

INSERT INTO "token" ("id", "text", "category")
VALUES (1, 'some text', ARRAY['cate1', 'cate2']);

您可以找到如下行:

SELECT * FROM "token" WHERE 'cate1' = ANY ("category");

There are arrays in PostgreSQL. For example:

CREATE TABLE "token" (
  "id"       integer PRIMARY KEY,
  "text"     text,
  "category" text[]
);

Now you can insert multiple categories for each row into token:

INSERT INTO "token" ("id", "text", "category")
VALUES (1, 'some text', ARRAY['cate1', 'cate2']);

You can find the rows like:

SELECT * FROM "token" WHERE 'cate1' = ANY ("category");
抚你发端 2024-12-19 05:40:40

有几个:

There are several:

你怎么这么可爱啊 2024-12-19 05:40:40

我知道这个问题在 10 年前就已经被问过,但自从 Postgres 不断发展以来,出现了经过优化的新类型,可以用来解决这个问题

  1. json
  2. jsonb 又名二进制 json

I know that this question had been asked 10 years ago but since Postgres is evolving there are new types that are optimized and could be used to address this issue

  1. json
  2. jsonb aka binary json
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文