【发布时间】:2021-10-07 21:28:15
【问题描述】:
UNIQUE CONSTRAINT 有问题。
我需要基于两列添加约束,其中一列需要具有特定值。
例如,假设我有一个users 表,其中当然包含用户,主键只是一个递增的整数。
我有一个configurations 表,除了配置列之外还有两列:user_id(users 表的外键)和main,它采用 0/1 值。
逻辑如下:一个用户可以有多个配置,一个配置属于一个用户——如表所示。 但是,我想限制它,使一个用户只能拥有一个主要配置(main = 1)并考虑唯一性。
我试过了
ALTER TABLE `configurations` ADD UNIQUE `unique_main_user`(`user_id`, `main`);
但这会将我限制为一种主要配置和一种非主要配置,这很混乱。
是否有可能添加 WHERE 语句或任何其他解决方案可以让我达到这种效果?
【问题讨论】: