Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL扩展检查约束

SQL扩展检查约束
EN

Stack Overflow用户
提问于 2014-02-25 06:29:25
回答 1查看 118关注 0票数 0

有可能有一个复杂的检查约束吗?

例如,我有一个customers表,其中每个记录都分配了一个customer类型。

因此,我可以有几个相同类型的客户。

我想为每种类型设置一个客户,作为该类型的“主要”帐户,但是每种类型只有一个客户可以是主客户。

是否可以在IsPrimary字段中添加一个check约束,检查所有相同类型的客户,看看是否已经有一个标记为主用户?

显然,我可以在C#代码中这样做,但我希望这是额外的检查。

我也可以使用触发器,但我想坚持约束,这样我就可以以同样的方式处理所有错误。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-25 06:41:59

这并不完全是一个检查约束问题。这是一个过滤唯一的索引问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create unique index customers_type_isprimary on customers(type)
    where isPrimary = 1;

这将确保最多为每种类型设置一个客户的isPrimary标志。

编辑:

过滤索引是一个有趣的创造。除了之外,还有各种解释它们的资源(比如文档 )。

其思想是只在索引创建步骤中与where子句匹配的行上构建索引。这样做的原因之一是为了缩小索引的大小。

这里有一个数据结构的用例。您可能有一堆在isPrimary = 1上筛选的查询。你永远不会在isPrimary = 0上过滤--你只需要把它从where子句中删除。为什么将索引与所有不必要的值混在一起?如果谓词在查询中,则可以使用索引。

unique指数的情况更有说服力。过滤后的唯一索引完全按照您的要求执行--确保为每种类型设置最多一个IsPrimary值。为此,它仅为具有type集的客户在IsPrimary上创建索引。索引的“唯一”部分保证每种类型只在索引中出现一次,并且扩展到每个type只能有一个客户设置type

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22017151

复制
相关文章
检查约束与默认值约束
检查约束(CHECK Constraint)是一种用于限制列中允许的值的约束。使用检查约束可以确保列中的值满足一定的条件。在MySQL中,检查约束是使用CHECK关键字来创建的。
堕落飞鸟
2023/05/11
1.1K0
SQL约束
1.概念:约束作用于表中字段上的规则,用于限制存储在表中的数据 2.目的:保证数据库中数据的正确、有效性和完整性 3.分类
海盗船长
2023/10/11
1970
SQL约束
在MySQL中有四类约束。分别是:主键约束(primary key),非空约束(not null),唯一约束(unique),外键约束(foreign key)。
zy010101
2020/12/25
5940
SQL NOT NULL 约束[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139646.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
4350
SQL NOT NULL约束
主要规定表中的数据必须遵守一定的规则,如果存在违反约束的数据行为,行为会被约束终止(也就是无法把数据添加到该表中)。而不为空约束则强制列不接受 NULL 值
全栈程序员站长
2022/08/31
6110
SQL基础--> 约束(CONSTRAINT)
约束是表、列级的强制规定、是防止那些无效或有问题的数据输入到表中。当对该表进行DML
Leshami
2018/08/07
1.7K0
MySQL 8.0新特性 — 检查性约束
在MySQL 8.0版本中,引入了一个非常有用的新特性 — 检查性约束,它可以提高对非法或不合理数据写入的控制能力;接下来我们就来详细了解一下。
brightdeng@DBA
2020/12/18
1.5K0
MySQL 8.0新特性 — 检查性约束
python 用元类检查做约束
from inspect import signature import logging
用户5760343
2019/12/12
5920
这个断点可以帮你检查布局约束
前言:     在现在iOS布局中,估计有很多很多开发者会使用到 Masonry 或者用到 SDAutoLayout 或者Storyboard或者还有Xib等等,前面两个三方的确是方便了我们的布局,但你写完之后难免可能布局约束支架会有一些冲突或者会有约束警告的出现,比如那个约束要突破那个约束的警告等等。在这里就分享一下写完布局之后自己对布局约束的算是一种检查方法吧。     大家应该听过 UIViewAlertForUnsatisfiableConstraints 这个断点,这个在你写约束出现警告的时候Xc
Mr.RisingSun
2018/01/12
1.1K0
这个断点可以帮你检查布局约束
oracle--约束(主键、非空、检查)
使用外键约束 --(1)、在字段后使用 references 参照表表名(参照字段) --(2)、在所有字段后使用 constraints fk_表名_字段名 foreign key(字段名) references 参照表名(参照字段名) --(3)、在创建表后使用alter table 表名 add constraints fk_表名_字段名 foreign key(字段名) references 参照表名(参照字段名) --删除外键 alter table 表名 drop constraints fk_表名_字段名
eadela
2019/09/29
2K0
39. Groovy 类型检查扩展,最终篇 高级类型检查扩展
本篇内容为Groovy类型检查扩展的最终篇。高级类型检查扩展。本篇结束后,关于Groovy中的类型检查扩展的相关知识就分享结束了。
zinyan.com
2023/02/23
9510
39. Groovy 类型检查扩展,最终篇 高级类型检查扩展
SQL2012_主键约束
SQL中主键的约束 if exists(select * from sys.databases where name='SchDB') drop database SchDB create database SchDB on primary( name='S_DB',filename='D:\S_DB.mdf',size=5mb,maxsize=100mb,filegrowth=10% ),( name='S_DB_N_1',filename='D:\S_DB_N_1.ndf',size=1m
赵腰静
2018/03/09
9590
基于约束的SQL攻击
前言 值得庆幸的是如今开发者在构建网站时,已经开始注重安全问题了。绝大部分开发者都意识到SQL注入漏洞的存在,在本文我想与读者共同去探讨另一种与SQL数据库相关的漏洞,其危害与SQL注入不相上下,但却
FB客服
2018/02/09
1.2K0
sql CHECK ,UNIQUE 约束(mysql)
check 用来限定值的范围,如下表: CREATE TABLE test22 ( age INT(10), sex VARCHAR(10), name11 VARCHAR(10) NOT NULL, CHECK (age>0) ) 在此,check限制了age的值为0以上
1_bit
2021/01/14
1K0
基于约束的SQL攻击
前言 值得庆幸的是如今开发者在构建网站时,已经开始注重安全问题了。绝大部分开发者都意识到SQL注入漏洞的存在,在本文我想与读者共同去探讨另一种与SQL数据库相关的漏洞,其危害与SQL注入不相上下,但
Angel_Kitty
2018/05/04
1.3K0
37. Groovy 类型检查扩展,第一篇 编写类型检查扩展
本篇Groovy学习笔记第37篇。开始介绍Groovy中的扩展类型检查相关知识。学会如何定义我们的类型检查器。
zinyan.com
2023/02/23
8410
37. Groovy 类型检查扩展,第一篇 编写类型检查扩展
技术译文 | MySQL 8 中检查约束的使用
本文来源:https://www.percona.com/blog/2020/10/02/how-to-use-check-constraint-in-mysql-8/
爱可生开源社区
2020/11/19
1.1K0
SQL 扩展事件
    在本篇,我通过使用新建“Session ”对话框来创建新的扩展事件会话。定义一个自己的扩展事件,动作和谓词,并且发布一个以收集事件数据为目的的会话。 首先从UI开始     在SQLServer2008R2以后(不包括2008R2),才引入扩展事件的内置UI。2008的版本可以通过安装插件的形式或者使用T-sql语句来实现扩展事件。如果是2012以后的SSMS客户端,也可以访问2008 的数据库实例,但是看不到扩展事件UI。在2008版本中缺少UI,意味着必须写T-SQL和XQuery来挖掘事件数据
用户1217611
2018/01/30
1K0
SQL 扩展事件
SQL Server基础SQL脚本之主外键约束
概要 ---- 本系列,几乎都是代码,记得当时写的时候用的是微软的官方实例数据库AdventureWorks_Data.mdf、AdventureWorks_Log.ldf来运行的。 下载链接:链接: https://pan.baidu.com/s/1pMdLz6N 密码: xvhu 或者回复“AdventureWorks”来获取链接。 代码我就放在文中了。 if exists(select * from sys.databases where name='SchDB') drop database Sc
赵腰静
2018/03/09
1.2K0
sql server可以定义的约束_数据库常见约束
Sage>0 and sage<120 Sage between 12 and 30
全栈程序员站长
2022/11/08
9220

相似问题

检查约束SQL

10

SQL约束检查<>

12

Sql检查约束?

24

SQL检查约束

14

检查约束SQL

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文