SQL唯一约束,每个用户最多两个条目

ReactHelp

是否可以在SQL中生成唯一约束,从而允许一个用户(user_id)最多启用两个)条目enabled一个例子如下

user_id  | enabled
------------------
123      | true
123      | true
123      | false
456      | true

以上将是有效的,但加入另一个user_id = 123enabled = true会失败,因为将有三个条目。另外添加user_id = 123enabled = false将是有效的,因为该表仍将满足该规则。

戈登·利诺夫

您不能允许两个值“启用”。但这是一种无需使用触发器即可接近所需解决方案的解决方案。想法是将值编码为数字,并对其中两个值实施唯一性:

create table t (
    user_id int,
    enabled_code int,
    is_enabled boolean as (enabled_code <> 0),
    check (enabled_code in (0, 1, 2))
);

create unique index unq_t_enabled_code_1
    on t(user_id, enabled_code)
    where enabled_code = 1;

create unique index unq_t_enabled_code_2
    on t(user_id, enabled_code)
    where enabled_code = 2;

插入新值有点棘手,因为您需要检查该值是放在插槽“ 1”还是“ 2”中。但是,您可以将其is_enabled用作布尔值进行查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

每个用户的唯一约束

来自分类Dev

为什么两个不同值的插入会导致唯一约束违规?

来自分类Dev

SQLAlchemy复合唯一约束创建两个单独的索引吗?

来自分类Dev

如何配置具有两个唯一约束的Eclipselink ORM对象

来自分类Dev

对两个字段的唯一约束,相反的

来自分类Dev

选择100个最后一个条目,每个唯一用户ID最多3个条目

来自分类Dev

SQL Server约束以允许“两个唯一”值

来自分类Dev

两列唯一约束ActiveAndroid

来自分类Dev

两列组合的唯一约束?

来自分类Dev

如果两个流程同时修改两个事务中的数据并且在表上存在唯一约束,将会发生什么?

来自分类Dev

复合唯一约束SQL

来自分类Dev

违反Oracle SQL唯一约束

来自分类Dev

SQL插入的唯一约束-ORACLE

来自分类Dev

SQL SERVER:唯一约束说明

来自分类Dev

根据日期,删除每个唯一ID的前两个条目

来自分类Dev

根据日期,删除每个唯一ID的前两个条目

来自分类Dev

SQL-使用唯一约束来删除重复的条目以免在表中输入

来自分类Dev

FOS用户覆盖用户存储上的唯一约束

来自分类Dev

如何为每个类实例设置唯一约束?

来自分类Dev

如何在where子句中为每个名称获取最多两个条目

来自分类Dev

违反唯一约束

来自分类Dev

放下唯一约束

来自分类Dev

根据SQL中的值添加唯一约束

来自分类Dev

Unicode字符上的SQL Server唯一约束问题

来自分类Dev

SQL Server中的Unicode唯一约束

来自分类Dev

SQL Server 2008:与列无关的值的唯一约束

来自分类Dev

2列中的任何SQL唯一约束

来自分类Dev

重复插入和唯一约束SQL Server 2008

来自分类Dev

重复插入和唯一约束SQL Server 2008

Related 相关文章

热门标签

归档