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

sql - 向此关系添加基于元组的检查

在关系 Person (SSN, State, Name) 中,添加一个基于元组的检查:如果一个人的州是 NY,那么他的 SSN 的前三位数字必须在“050”和“134”之间。(提示:在 SQL 中使用 LEFT 函数)。

我对这里的 CHECK 条件感到不舒服。我不确定这是否是进行条件检查的正确方法。有人可以验证一下吗?如果不是,我们如何进行条件检查?

我们需要这个:

我们需要触发器吗?我在想,如果发生新的插入/更新,请检查该值。但问题不是这样问的。

0 投票
2 回答
3861 浏览

sql - 使用转义字符的邮政编码 SQL 检查语句

我曾尝试在其他领域寻找,但我似乎无法弄清楚我正在做的事情有什么问题。我正在尝试在应该包含格式为“00000-0000”的 9 位邮政编码的列上创建检查约束。这是一个分配,所以我唯一可以做的就是创建检查约束。

我已经成功地将 check 语句用于其他列,但由于某种原因,我在 Stack Overflow 上找到的语句不起作用。唯一允许的字符是数字和连字符 ('-')。

由于此检查约束是根据 Stack Overflow 上的另一个(正面评价)问题建模的,因此我不知道可能出了什么问题。这是我收到的错误。

有人对我有建议、问题或意见吗?

0 投票
1 回答
269 浏览

sql - 检查约束内的子查询

如果我有一个人表,有 2 个字段(姓名和地址)。

我如何确保所有具有相同地址的人都有不同的名字。

我试图使用CHECK约束,网上有一些示例在 create table 语句中使用子查询,但出现 SQL 错误:

ORA-02251: 此处不允许子查询

任何帮助将不胜感激。谢谢

0 投票
3 回答
12622 浏览

oracle - Oracle:如何用 case when 制定复杂的约束

以下条件约束根本不起作用。是否有可能以一种可行的方式制定?

0 投票
1 回答
1147 浏览

sql-server - 检查约束中的括号问题

我正在尝试创建以下检查约束。

我可以保存它并且没有错误。但是 SSMS 删除了两个内括号(因此只有开头的左括号和结尾的右括号)。

这似乎完全改变了意思。我希望所有这些列都为空,或者它们都不为空。SQL Server 不能处理这个问题有什么原因吗?

0 投票
1 回答
1510 浏览

python - SQLAlchemy:带有字符串函数的 CheckConstraint

尝试以这种方式使用 sqlalchemy.schema.CheckConstraint :

(显然,这意味着标签表上的多对多自引用关系,并且主题是具有预定义前缀的标签),最终结果是

我在这里错在哪里?在这种情况下有可能有这样的限制吗?

当前的后端是 sqlite,但我考虑在未来迁移到 Postgres,因此寻找更不通用的收据。

更新:sqlalchemy 0.7.5

0 投票
3 回答
1009 浏览

database - 未完全指定的日期常量

在 Oracle 中, “未完全指定的日期常量”是什么意思。意思是?有什么例子吗?根据文档,它不能在检查约束和列默认值中指定。

0 投票
1 回答
3926 浏览

regex - 正则表达式检查约束不适用于 SQL 服务器

我试图拒绝所有不是格式“03 xxxx xxxx”的输入,所以我创建了一个表格

哪个应该(我认为?)接受例如“03 1234 1234”。但是如果我尝试通过 sql manager 添加它,我会收到一条错误消息:“INSERT 语句与 CHECK 约束“num_check”冲突”

起初我以为我的正则表达式已关闭,但我在其他几个地方尝试过,它接受了上面的例子。有任何想法吗?

0 投票
1 回答
600 浏览

sql - 具有检查约束的列,仅接受大写 A 到大写 Z

我有一列varchar2(30)withnot nullcheck constraint

我的问题是,我希望该列仅通过使用检查约束来接受大写 A 到大写 Z。我该怎么做呢?

0 投票
2 回答
17310 浏览

sql-server - 日期范围重叠检查约束

我在 sql server 2005 中有一个包含 3 列的简单表:DateStart、DateEnd 和 Value。我尝试设置“表检查约束”以避免插入重叠记录。例如,如果在此类表中存在 DateStart = 2012-01-01(1 月 1 日)和 DateEnd 2012-01-15(1 月 15 日)的记录,则 Check 约束必须避免插入 DateStart=2012-01-10 的记录( no care DateEnd)、DateEnd=2012-01-10 (no care DateStart) 的记录或 DateStart 2011-12-10 和 DateEnd 2012-02-01 的记录。

我以这种方式定义了一个UDF:

然后认为检查可能是这样的:

但即使 [myTable] 为空 EXISTS 运算符在我插入第一条记录时也会返回 true。我在哪里?是否可以设置这样的约束?

顺便说一句,我认为 DateStart 包括在范围内,而 DateEnd 不包括在范围内。