问题标签 [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.
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 两次时,允许第二次插入。
谢谢!
mysql - 如何对引用的外键表mysql进行检查约束?
当我将数据插入关系表时,它不会引发约束异常
mysql - 如何在 MySQL 表上添加自定义 CHECK 约束?
我在使用这张桌子时遇到了问题
我想要一个外键约束,这很有效。然后,我还想为属性添加一个约束,status
使其只能采用值“a”、“d”和“u”。我无法将该字段设置为Enum
或set
。
谁能告诉我为什么这段代码在 MySQL 中不起作用?
sql - Oracle 11g - 使用 RegEx 检查约束
我正在使用 Oracle 11g,并尝试创建一个表来定义创建约束。
我试图添加检查约束来验证一些信息(如电子邮件地址、电话号码等......)
Oracle 11g 中有什么东西可以让我做这样的事情吗?
我想使用的正则表达式(从 regexLib 中获取)是:
我认为 Oracle 11g(如果我错了,请纠正我)不支持 RegEx 的这种格式......
我见过使用 REGEX_LIKE 的方法,但它似乎只适用于WHERE
子句。
我想将其保留为检查约束,而不是触发器或外部函数/脚本。
另外,我在这里的其他线程中读过,有人说 RegEx' 不是验证电子邮件地址格式和此类信息的好方法。评论中没有给出原因,如果有原因,我想知道为什么!
mysql - MySql 约束在 mysql Ubuntu 上不起作用
我已经使用经典命令在我的 ubuntu 中安装了 mysql:
令我惊讶的是,它是一个不尊重我用“检查”编写的任何约束的 mysql。你能告诉我这是一个错误还是我不知道如何在 mysql 中使用约束?(我主要用 sql simple 编写命令)
例如这些命令:
现在表格看起来像这样:
怎么可能?
sql - 使用约束检查 sql 唯一值
我有一个表有三列 ID、Value 和 status 的情况。对于不同的 ID,应该只有一个值为 1 的状态,并且应该允许 ID 具有多个值为 0 的状态。唯一键将阻止 ID 具有多个状态(0 或 1)。
有没有办法解决这个问题,也许使用约束?
谢谢
java - Hibernate如何添加检查约束
我的 Java 端有一个字段:
所以它在 SQL(我使用 PostgreSQL)方面有效果:
但是我想向它添加检查约束,如下所示:
如何在 Java(hibernate) 端定义它?
sql - Oracle SQL - 可以在检查约束中使用 CASE 来确定数据属性吗?
我正在使用 Oracle 10g,我想对表应用约束,其中为一列输入的值确定另一列是 NULL 还是 IS NOT NULL。Column1 只能包含 1 或 0;第 2 列是 VARCHAR2(255)。
我知道以下工作:
但是,我想知道是否可以使用 CASE 来执行此约束并在 col2 上设置属性 NOT NULL,或者 CASE 是否只能用于定义值?即可以这样工作:
sql - 检查 SQL 中的约束 - 指定一个值可以是空值或约束
我正在尝试在 SQLite 中合并一个检查约束,其中要求如下:
- 该值可能为空
- 如果该值不为空,那么它应该大于 3。
所以,在我的创建表中我写了
为此,它看起来像是创建了表,但它不强制执行大于条件。
我也试过
这甚至不会首先创建表。
有人可以帮助如何执行这两个约束吗?
谢谢
sql - 如何限制 SQL 表中允许的记录数?
假设我有两个表,Parent 和 Child。Parent 有一个 MaxChildren (int) 字段,Child 有一个 Enabled (bit) 字段和一个 ParentID (int) 字段链接回父记录。
我希望有一个约束,使得每个父级的 Enabled = 1 的记录不能超过 MaxChildren 记录。这意味着如果在 Child 表中插入或更新任何记录的任何尝试超过适用的 MaxChildren 值,或任何将 MaxChildren 降低到当前适用子记录数以下的尝试都将失败。
我正在使用 MS SQL Server,但我希望有一种标准的 SQL 方式。