我可以将值设置为仅在单个 "group" 中允许吗

Can i set values to only be allowed in a single "group"

我有一个 table 看起来像这样:

 code | group
------+------
  1   |   a
  1   |   a
  2   |   a
  9   |   b
  9   |   b
  8   |   b

有没有办法设置一个约束条件,让相同的代码只能出现在一组中?

因此,例如添加行 code=3; group=a 不会违反约束,但添加行 code=1; group=b 将违反约束。

如果这些字段在同一个 table,我不相信你能做到。在我看来,您有一个层次结构,其中 group 是主要级别,code 是详细信息。我看到这可以用 3 tables:

解决
CREATE TABLE "group" (
    id "char" CONSTRAINT "group_pk" PRIMARY KEY
)

CREATE TABLE "code" (
    id INTEGER CONSTRAINT "code_pk" PRIMARY KEY,
    group_id "char",
    FOREIGN KEY group_id REFERENCES "group" (id)
)

CREATE TABLE "data" (
    id INTEGER CONSTRAINT "data_pk" PRIMARY KEY,
    code_id "char",
    ...
    FOREIGN KEY code_id REFERENCES "code" (id)
)

其中 data table 代表您正在谈论的 table。