问题标签 [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 投票
2 回答
532 浏览

sql-server - 简单的 CHECK 约束不是那么简单

第二次编辑:所涉及功能的源代码如下:

编辑:示例表是一个简化。我需要它作为 Scaler Function / CHECK CONSTRAINT 操作。现实世界的安排并不是那么简单。

原始问题:假设下表名为 FileUri

FileUriId、FileId、FileTypeId

我需要编写一个检查约束,使得 FileId 对于 FileTypeId 为 1 是唯一的。您可以根据需要插入相同的 FileId,但只能插入 FileTypeId 为 1 的一行。

不起作用的方法:

1) dbo.fn_CheckFileTypeId 返回具有以下逻辑的 INT: SELECT Count(FileId) FROM FileUri WHERE FileTypeId = 1

2)ALTER TABLE FileUri ADD CONSTRAINT CK_FileUri_FileTypeId CHECK dbo.fn_CheckFileTypeId(FileId) <= 1

当我插入 FileId 1, FileTypeId 1 两次时,允许第二次插入。

谢谢!

0 投票
1 回答
322 浏览

mysql - 如何对引用的外键表mysql进行检查约束?

当我将数据插入关系表时,它不会引发约束异常

0 投票
5 回答
64011 浏览

mysql - 如何在 MySQL 表上添加自定义 CHECK 约束?

我在使用这张桌子时遇到了问题

我想要一个外键约束,这很有效。然后,我还想为属性添加一个约束,status使其只能采用值“a”、“d”和“u”。我无法将该字段设置为Enumset

谁能告诉我为什么这段代码在 MySQL 中不起作用?

0 投票
2 回答
16218 浏览

sql - Oracle 11g - 使用 RegEx 检查约束

我正在使用 Oracle 11g,并尝试创建一个表来定义创建约束。

我试图添加检查约束来验证一些信息(如电子邮件地址、电话号码等......)

Oracle 11g 中有什么东西可以让我做这样的事情吗?

我想使用的正则表达式(从 regexLib 中获取)是:

我认为 Oracle 11g(如果我错了,请纠正我)不支持 RegEx 的这种格式......

我见过使用 REGEX_LIKE 的方法,但它似乎只适用于WHERE子句。

我想将其保留为检查约束,而不是触发器或外部函数/脚本。

另外,我在这里的其他线程中读过,有人说 RegEx' 不是验证电子邮件地址格式和此类信息的好方法。评论中没有给出原因,如果有原因,我想知道为什么!

0 投票
1 回答
264 浏览

mysql - MySql 约束在 mysql Ubuntu 上不起作用

我已经使用经典命令在我的 ubuntu 中安装了 mysql:

令我惊讶的是,它是一个不尊重我用“检查”编写的任何约束的 mysql。你能告诉我这是一个错误还是我不知道如何在 mysql 中使用约束?(我主要用 sql simple 编写命令)

例如这些命令:

现在表格看起来像这样:

怎么可能?

0 投票
7 回答
3874 浏览

sql - 使用约束检查 sql 唯一值

我有一个表有三列 ID、Value 和 status 的情况。对于不同的 ID,应该只有一个值为 1 的状态,并且应该允许 ID 具有多个值为 0 的状态。唯一键将阻止 ID 具有多个状态(0 或 1)。

有没有办法解决这个问题,也许使用约束?

谢谢

0 投票
2 回答
3598 浏览

java - Hibernate如何添加检查约束

我的 Java 端有一个字段:

所以它在 SQL(我使用 PostgreSQL)方面有效果:

但是我想向它添加检查约束,如下所示:

如何在 Java(hibernate) 端定义它?

0 投票
1 回答
7804 浏览

sql - Oracle SQL - 可以在检查约束中使用 CASE 来确定数据属性吗?

我正在使用 Oracle 10g,我想对表应用约束,其中为一列输入的值确定另一列是 NULL 还是 IS NOT NULL。Column1 只能包含 1 或 0;第 2 列是 VARCHAR2(255)。

我知道以下工作:

但是,我想知道是否可以使用 CASE 来执行此约束并在 col2 上设置属性 NOT NULL,或者 CASE 是否只能用于定义值?即可以这样工作:

0 投票
2 回答
890 浏览

sql - 检查 SQL 中的约束 - 指定一个值可以是空值或约束

我正在尝试在 SQLite 中合并一个检查约束,其中要求如下:

  1. 该值可能为空
  2. 如果该值不为空,那么它应该大于 3。

所以,在我的创建表中我写了

为此,它看起来像是创建了表,但它不强制执行大于条件。

我也试过

这甚至不会首先创建表。

有人可以帮助如何执行这两个约束吗?

谢谢

0 投票
1 回答
1971 浏览

sql - 如何限制 SQL 表中允许的记录数?

假设我有两个表,Parent 和 Child。Parent 有一个 MaxChildren (int) 字段,Child 有一个 Enabled (bit) 字段和一个 ParentID (int) 字段链接回父记录。

我希望有一个约束,使得每个父级的 Enabled = 1 的记录不能超过 MaxChildren 记录。这意味着如果在 Child 表中插入或更新任何记录的任何尝试超过适用的 MaxChildren 值,或任何将 MaxChildren 降低到当前适用子记录数以下的尝试都将失败。

我正在使用 MS SQL Server,但我希望有一种标准的 SQL 方式。