gpt4 book ai didi

sql - 当 A & B 已经存在时,防止在 SQL 中输入 B & A

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:43 26 4
gpt4 key购买 nike

我有一个包含两行的表:AccountIDPartnerAccountID。我需要防止两列重复。意思是,如果一个条目存在:

| AccountID | PartnerAccountID |
| 1 | 2 |

我需要确保以下内容不能同时存在:

| AccountID | PartnerAccountID |
| 2 | 1 |

有什么方法可以在约束条件下做到这一点?

最佳答案

如果您可以在表达式上创建唯一索引,那就太好了:

create unique index unq_t_AccountID_PartnerAccountID
on t((case when AccountID < PartnerAccountID then AccountId else PartnerAccountID end),
(case when AccountID < PartnerAccountID then PartnerAccountIDelse AccountId end)
);

但是您可以通过将列创建为计算列然后创建索引来完成几乎相同的事情:

alter table t add minid as (case when AccountID < PartnerAccountID then AccountId else PartnerAccountID end);

alter table t add maxid as (case when AccountID < PartnerAccountID then PartnerAccountIDelse AccountId end);

create unique index unq_t_minid_maxid on t(minid, maxid);

关于sql - 当 A & B 已经存在时,防止在 SQL 中输入 B & A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41175229/

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