小编Lor*_*rdF的帖子

由 2 列组成的唯一约束,其中一列具有特定值

我有一个问题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 语句或任何其他解决方案来让我达到这种效果?

mysql unique-constraint

1
推荐指数
1
解决办法
1098
查看次数

标签 统计

mysql ×1

unique-constraint ×1