lel*_*lel 2 sql-server unique-constraint
我想根据membershipType 列设置我的默认列Y 或N。根据membershipType 列中的3 个不同值,defaults 列中只能有一个Y。除此之外,其他人将是 N。我该怎么做?
ID titlePromo membershipType defaults
-- ---------- -------------- ------
1 Promo 1 Membership Promotion Y
2 Promo 2 Membership Renewal Y
3 Promo 3 Membership Grad Y
4 Promo 4 Membership Promotion N
5 Promo 5 Membership Promotion N
6 Promo 6 Membership Grad N
Run Code Online (Sandbox Code Playgroud)
使用唯一的过滤索引。
CREATE UNIQUE INDEX uixDefault
ON dbo.Promotions(membershipType)
WHERE defaults = 'Y';
Run Code Online (Sandbox Code Playgroud)
这停止了具有defaults='Y'相同membershipType的第二行。