问题标签 [constraints]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
6605 浏览

sql - 在 SQL Server 2005 中,如何设置一列整数以确保值大于 0?

这可能是一个简单的答案,但我找不到。我有一个包含一列整数的表,我想确保在插入一行时该列中的值大于零。我可以在代码方面做到这一点,但认为最好在桌面上强制执行。

谢谢!

我的上一条评论有误,现在一切都很好。

0 投票
2 回答
2337 浏览

database - 我的 Oracle 10gr2 检查约束有什么问题?尝试强制执行日期范围

我想对日期范围强制执行 CHECK 约束,以使 BIRTH_DATE 列中的所有日期都小于明天且大于或等于 100 年前。我在 CHECK 约束中尝试了这个表达式:

但我收到错误“ORA-02436:在 CHECK 约束中错误指定日期或系统变量”

有没有办法使用 CHECK 约束而不是触发器来实现这一点?

0 投票
5 回答
7512 浏览

c# - 您可以使用“where”来要求 c# 中的属性吗?

我想创建一个只接受可序列化类的泛型类,可以用 where 约束来完成吗?

我正在寻找的概念是这样的:

0 投票
4 回答
4258 浏览

sql-server - 在 SQL Server 中将唯一索引创建为“索引”或“约束”有什么区别?

在将要成为 UNIQUE(但不是表的主键)的列上创建索引时,SQL Server 让我选择几个选项:

1)我可以选择它是一个约束或索引。
我猜这意味着如果我将它设置为约束,它不会在查询时使用它,只有在写入时。但是,我能想到的让 SQL Server 强制执行该约束的唯一有效方法是实际构建索引。这个选项有什么用?

2)另外,如果我将它设置为“索引”,它让我指定它应该忽略重复的键。这对我来说是最令人费解的......
我再次猜测它意味着与约束相反。它可能意味着“在查询时使用它,但在写入时甚至不检查”。
但那我为什么要把它设置为 UNIQUE 呢?
我猜 SQL Server 可以做一些优化,但我想更好地理解它。

有谁知道 SQL Server 究竟对这些选项做了什么?
将索引设置为唯一但忽略重复键的用例是什么?

注意:这适用于 SQL Server 2000


编辑:根据你所说的,但是......如果我创建一个约束,它将用于加速使用约束中的字段进行过滤的查询?

谢谢!

0 投票
6 回答
681 浏览

sql - 奇怪的多对多和一对多关系

我知道我会投反对票,但我必须确定这是否合乎逻辑。

我有三个表A,B,C。B是用于在A和C之间建立多对多关系的表。但问题是A和C也直接以一对多关系相关

一位客户添加了以下要求:

从表B中获取信息,内联A和C,并在同一个查询中以一对多关系关联A和C

就像是:

替代文字 http://img247.imageshack.us/img247/7371/74492374sa4.png

我尝试进行查询,但总是返回 0 行。客户坚持我能完成要求,但我对此表示怀疑。任何意见?

PS。我没有更具描述性的标题,有什么想法吗?

更新:感谢 rcar,在某些情况下,这可能是合乎逻辑的,以便了解学生上过的所有课程的历史记录(假设学生一次只能上一门课)

更新:有一个联系人表,一个包含每个联系人信息的表和关系表。要获取联系人的信息,我必须与 Information 建立 1:1 的关系,并且每个联系人都可以拥有喜欢和通讯录;这就是实现多对多关系的原因。

完整的想法是获取联系人的姓名和他的通讯录。现在我得到了客户的想法......我在查询时遇到了问题,基本上我正在尝试使用 jdecuyper 编写的查询,但正如他警告的那样,我没有得到任何数据

0 投票
4 回答
2752 浏览

mysql - 如何在两个字段上创建“双面”唯一索引?

如何有效地在表中的两个字段上创建唯一索引,如下所示: create table t (a integer, b integer);

其中两个不同数字的任何唯一组合不能在表的同一行上出现多次。

换句话说,如果存在 a=1 和 b=2 的行,则不能存在 a=2 和 b=1 或 a=1 和 b=2 的另一行。换句话说,两个数字不能以任何顺序一起出现多次。

我不知道这样的约束被称为什么,因此标题中的“双面唯一索引”名称。

更新:如果我在列 (a,b) 上有一个复合键,并且数据库中存在一行 (1,2),则可以插入另一行 (2,1) 而不会出错。我正在寻找的是一种防止同一对数字以任何顺序多次使用的方法......

0 投票
3 回答
10991 浏览

c# - 派生类的通用约束

我有A类:

B 类派生自 A:

C类派生自B类:

现在我有一个带有约束的通用方法

好的,现在我想打电话:

但我得到编译错误说: Type argument 'ClassC' does not inherit from or implement the constraint type 'ClassA<ClassC>.

然而,编译器将允许:

我的理解是,这失败了,因为ClassC继承ClassA<ClassB>而不是ClassA<ClassC>

我真正的问题是,是否可以创建一个派生自该类的类,该类ClassB可以以某种方式与泛型方法一起使用?

这似乎泛型被过度使用,我同意。我正在尝试创建从单独项目中的亚音速数据对象派生的业务层对象。

注意:我在 < T > 中添加了额外的空格,否则它们会从问题中删除。

0 投票
1 回答
184 浏览

java - SQL删除级联帮助(具体问题)

我在 HSQL 数据库中有两个具有多对多关系的表(为说明目的而重命名/重构)。当我从多对多关系的一侧删除时,我希望所有内容都被清除(不查询表;这对性能至关重要)

这是我的主要表格:

这是我的联接表:

这是我的限制:

我基本上想这样做:“从person_id = 0的人中删除”并让它从PERSON、JOB_PERSON和JOB中删除所有内容,如果JOB实体将被孤立(不再在多对多表中引用)

在不查询数据库的情况下这可能吗?当我删除时,它只会从 PERSON 和 JOB_PERSON 中删除。您可能会说,我缺乏 sql 技能。

这是我一直在玩的虚拟数据:

因此,如果我输入这两个语句:

我想删除所有 3 个表中的所有内容。可能的?

0 投票
1 回答
1064 浏览

validation - 约束与验证?

我正在使用 Windows 窗体数据绑定,实现类似IDataErrorInfo. 为了使其工作,域(或业务)对象被允许处于无效状态。实际上,域对象需要在用户输入时保留无效值IDataErrorInfo才能正常工作。只要对象不处于无效状态,我们就可以了。

但是,正如主题行所暗示的那样,我想知道约束和验证之间是否存在差异。前者会阻止用户进行更改,后者是我上面描述的验证类型。

让我解释一下——如果你有一个集合Person并且Person有一个SSN属性。是PersonCollectionkeyed on SSN,意思是在集合中,不能有两个Persons相同的SSN。如果我们在 上允许临时无效状态,我们会引入一种情况,即集合Person中有两个Persons重复的情况,尽管是暂时的。SSN这可能导致另一个对象使用PersonCollection,寻找Person具有重复对象的对象SSN,获取两个对象的问题。

所以,对我来说,似乎某些类型的验证需要是约束而不是(更改后)验证。

想法?

0 投票
4 回答
4460 浏览

oracle - Oracle 检查约束

我已经为这个检查约束苦苦挣扎了几个小时,并希望有人能善意地解释为什么这个检查约束没有做我认为应该做的事情。

从本质上讲,您必须是残疾才能收取残疾收入。似乎此检查约束的第一部分(IS_DISABLED IS NULL AND DISABILITY_INCOME_TYPE_ID IS NULL)未强制执行(见下文)。

可用值为DISABILITY_INCOME_TYPE_ID1 和 2,通过外键强制执行。两者都可以为空IS_DISABLEDDISABILITY_INCOME_TYPE_ID

谢谢你的帮助,迈克尔