问题标签 [check-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 投票
3 回答
5540 浏览

sql - 一个检查约束还是多个检查约束?

关于更少的检查约束是否更好或更多的任何建议?如果有的话,它们应该如何分组?

假设我有 3 列VARCHAR2(1 BYTE),每列都是 'T'/'F' 标志。我想为每一列添加一个检查约束,指定只IN ('T', 'F')允许使用字符。

我是否应该有 3 个单独的检查约束,每列一个:

或单个检查约束:

我的想法是最好将这三个分开,因为这些列在逻辑上彼此无关。我将有一个检查多个列的检查约束的唯一情况是,一个列中的值与另一列中的值之间是否存在某种关系,例如:

0 投票
4 回答
136 浏览

sql-server - 这条规则是否可以使用 db 约束?

我希望确保我的数据具有以下检查(约束?)的约束

  • 此表每个中心/类别只能有一个 BorderColour。(例如#FFAABB)
  • 但它可以有多个空值。(对于这个字段,所有其他行都是空的)

表架构

我猜我必须做一个检查约束?但我不确定如何,等等。

样本数据。

现在..如果我添加以下行,我应该得到一些 sql 错误....

有任何想法吗?

0 投票
4 回答
28124 浏览

sql-server - 如何创建多表检查约束?

请想象一下这个小型数据库...

图表

删除了死 ImageShack 链接 - 志愿者数据库图

协会

志愿者可以报名参加多个活动。
活动可能由多名志愿者组成。

一个事件可能有多个班次。
一个转变只属于一个单一的事件。

一个班次可能只有一名志愿者。
一名志愿者可以工作多个班次。

检查约束

  1. 我可以创建一个检查约束来强制没有一个没有报名参加该轮班活动的志愿者担任轮班工作人员吗?

  2. 我可以创建一个检查约束来强制两个重叠的班次永远不会由同一个志愿者工作吗?

0 投票
2 回答
1257 浏览

sql - SQL CHECK 约束问题

我正在使用 SQL Server 2008,并且我有一个包含三列的表LengthStartTimeEndTime. 我想在这个表上做一个 CHECK 约束,上面写着:

我已经开始尝试这样的事情:

显然这还不够,但即使是这个简单的表达式也无法验证。我得到错误:

“验证 'CK_Test_Length_Or_Time' 时出错。要编辑约束吗?”

关于如何去做这件事的任何想法?

0 投票
2 回答
2790 浏览

database - 如何在 EclipseLink/JPA 中指定 @OneToMany 的基数

我正在尝试强加@Oneto7 关联。我曾设想过一个指定目标许多值的属性,但没有找到。如果没有这样的属性,那么在 JPA/EclipseLink 中如何实现呢?

0 投票
2 回答
650 浏览

sql-server - 跨表的 SQL Server 约束

我有一个 SQL Server 数据库,其中包含一个Apartment表(具有列FloorNumBuildingID)和一个ApartmentBuilding表(具有列NumFloors)。有没有办法设置一个约束(使用 SQL Server UI)来检查Apartment.FloorNum是否大于ApartmentBuilding.NumFloors

我试过这个:

但现在我意识到我必须以某种方式加入 上的列BuildingID,但我不知道如何在约束内做到这一点。

谢谢你的帮助!

0 投票
1 回答
88 浏览

java - 如何找到具有最大主键的实体?

我有一个具有 int 主键的实体 LearningUnit。实际上,它没有更多的东西。

Entity Concept 与其有如下关系: @ManyToOne @Size(min=1,max=7) private LearningUnit learningUnit;

在 Concept 的构造函数中,我需要检索具有最大主键的 LearningUnit。如果没有 LearningUnit 存在,我会实例化一个。然后我将 this.learningUnit 设置为检索/实例化。

最后,我在 try-catch 块中调用 Concept 的空构造函数,让 entitymanager 进行基数检查。如果抛出异常(我希望在已经有另外 7 个概念引用同一个 LearningUnit 的情况下出现异常。在这种情况下,我会用一个新的更大的主键实例化一个新的 LearningUnit。

如果有的话,请指出我上面概述的算法中的明显缺陷。

0 投票
4 回答
1061 浏览

oracle - 确保 Oracle 行代表唯一的时间跨度

我必须在 Oracle/PLSQL 中创建一个过程。我必须验证我创建的新行的 start_date 和 end_date 之间的时间间隔不能与其他行的其他 start_dates 和 end_dates 相交。

现在我需要检查每一行的条件,如果它不对应重复指令应该停止,然后显示一条消息,例如“给定的时间间隔不正确”

我不知道如何在 Oracle/PLSQL 中重复指令,如果您能帮助我,我将不胜感激。

我需要一个循环或类似的东西来验证我的表中的每一行 date_hour_i 和 date_hour_e 给出的时间间隔不与其余行给出的其他时间间隔相交。还有一个规范....每一行的日期对应于一个客户和一个在给定时间间隔内为客户理发的员工....我希望不让引入一个新行,如果相同的客户(或其他客户)和员工,新的时间间隔与相同/其他客户和员工的其他时间间隔相交......我希望我说清楚......

0 投票
2 回答
1893 浏览

mysql - mysql和触发器使用问题

我有一种情况,如果满足某个条件,我不希望发生插入(事务应该回滚)。我可以在应用程序代码中编写这个逻辑,但是由于某种原因,它必须用 MySQL 本身编写(比如用不同语言编写的客户端将插入到这个 MySQL InnoDB 表中)[这是一个单独的讨论]。

表定义:

触发器看起来像这样:

我猜它也可以写成(未经测试):

但是,这不起作用:

您得到保证:

  1. 您的数据库将永远是 MySQL
  2. 表类型将始终为 InnoDB
  3. NOT NULL 列将始终保持原样

问题:您在第一种方法中看到任何令人反感的地方吗?

0 投票
2 回答
10005 浏览

mysql - 在 MySQL 中使用检查约束来控制字符串长度

我遇到了一个问题!

我已经使用 MySQL 设置了我的第一个检查约束,但不幸的是我遇到了问题。当插入应该未通过测试的行时,无论如何都会插入该行。

结构:

插入语句:

fname 列中字符串的长度应该太短了,但还是插入了。

我很确定我在这里遗漏了一些基本的东西。