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