gpt4 book ai didi

mysql - SQL 约束 : Unique value in a non-unique column

转载 作者:行者123 更新时间:2023-11-29 07:08:37 29 4
gpt4 key购买 nike

我有一个名为 GroupMembers 的表,它表示参与网站上某些社区的用户列表。

列看起来像这样:

groupId  |  accountId  | role

如您所见,里面有一个名为“role”的 CHAR(1) 列,它代表社区中每个用户的角色。主键由前两列组成,“角色”既不是 NOT NULL,也不是 UNIQUE。

现在,问题是:每个组都必须指定其创建者的帐户,我认为可以通过将帐户添加到 GroupMembers 并将“C”放入其“角色”列来实现。但只能有一个创建者,组中的其他帐户不能将“C”作为其“角色”。

是否有一个约束允许我检查“角色”列中是否只有一行包含“C”,除了 UNIQUE(我不能使用它,因为可以有任意数量的其他类型)用户)?

最佳答案

这样的限制是存在的。 。 。但在 MySQL 中则不然。其他数据库允许您实现过滤索引或计算列索引。

相反,您可以通过让创建者在 Groups 表中实现此逻辑:

alter table groups add column creatorUserId int;
alter table groups add constraint fk_groups_creatorUserId
foreign key creatorUserId references users(creatorUserId);

关于mysql - SQL 约束 : Unique value in a non-unique column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40675255/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com