gpt4 book ai didi

SQL Server : Unique Index on single values of two columns (! !!不是组合)

转载 作者:行者123 更新时间:2023-12-02 08:29:31 25 4
gpt4 key购买 nike

我有一个团队表,每个团队都有两个代码。团队成员的代码和团队负责人的代码。

TeamId    Name     MemberCode    LeaderCode
--------------------------------------------
1 Team1 CodeXY CodeXYZ
2 Team2 CodeAB CodeBC
...

有两个唯一索引,一个在 MemberCode 上,一个在 LeaderCode 上,确保 MemberCodes 和 LeaderCodes 是唯一的。

但是我如何定义不仅 MemberCodes 本身是唯一的,而且 MemberCodes 和 LeaderCodes 也是唯一的?

MemberCode 不应该是 LeaderCode。

有人有想法吗?

P.S.:像 Create Unique index UIDX_12 On tbl (MemberCode, LeaderCode) 这样的两列唯一索引是没有选择的!

最佳答案

有了这个数据结构,我认为你必须有一个触发器。

您可以重新格式化数据,因此您有一张表和(至少)三列:

  • 团队编号
  • 代码
  • 代码类型

然后你可以添加约束:

  • codetype 只能是 'member' 或 'leader'
  • code 是唯一的
  • teamid在teamid表中
  • teamid/codetype 是唯一的

这将允许您为每个团队准确存储这些值中的每一个(假设这些值不是 NULL)。

在创建表语句中,这可能类似于:

create table . . .
check codetype in ('member', 'leader'),
unique(code),
teamid references teams(teamid),
unique (teamid, codetype)
. . .

关于SQL Server : Unique Index on single values of two columns (! !!不是组合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28564535/

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