问题标签 [check-constraint]

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 回答
386 浏览

sql-server - 查询 Microsoft SQL Server 2012 70-461 书

书中的一个问题提出以下问题:

使用您在第 2 课练习中使用的相同类型的逻辑来测试表CHK_Products_unitprice中 的检查约束。Production.Products尝试插入包含所有有效列的新行,但使用负单价 -10。删除检查约束。重试插入。尝试将检查约束添加回表中。更新插入的行,使其具有正单价。现在尝试将检查约束添加回表中。如果没有行,您能否将检查约束添加回表中?为什么?

我很困惑它在问什么?当然,当所有行都打破约束时,您应该能够添加一个约束?

谢谢

0 投票
1 回答
290 浏览

postgresql - Planner 不使用检查约束

请考虑以下对象:

如果我查看以下查询的解释计划:

它表明要扫描的唯一实际物理表是 invoices_2013,这是我所期望的。

但是,当我查看此查询的解释计划时(今天是 10/11/13):

它扫描所有三个表。

有谁知道以检查约束可以利用它的方式强制检查/插值函数的任何方法?

0 投票
1 回答
2361 浏览

sql - 更新另一列时检查某列是否包含某个值

在更新表行的另一列中的值之前,我很难找到一种简单的方法来检查列是否包含某个值。例如,如果我有如下表 StudentsParticipationInClass

我想要一个约束,告诉用户能够将状态更新为 Done Grade 必须不是“U”或 NULL。

0 投票
2 回答
1605 浏览

sql - 为什么这个 Check 约束不起作用?

我在 SQL Server 2005 中创建了一个检查约束,但是这个检查约束不起作用。SQL Server Management Studio 通过插入语句告诉我以下消息:

消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 CHECK 约束“MY_CHECK_CONSTAINT”冲突。冲突发生在数据库“MY_DB”、表“dbo.MY_TABLE”、列“MY_COLUMN”中。

我使用以下代码添加了检查约束:

调用函数“MY_FUNCTION”返回一个 int。

我的目标是,如果我的函数返回一个小于 1 的 int,则插入语句可以成功完成,如果返回值大于 0,则必须终止插入语句。

我现在的问题是我的函数返回值 0 但插入语句总是终止。我究竟做错了什么?

我的函数代码如下:

谢谢你的帮助。

0 投票
2 回答
3883 浏览

sql - T SQL CHECK 约束以允许大写的值集

我必须使用检查约束在 SQL Server 中创建一个表,以仅允许大写值集

我的代码是这样的:

请检查错误并帮助我

0 投票
2 回答
390 浏览

sql-server - 为什么 sp_rename 不适用于 CHECK 约束?

要重命名 CHECK,我使用如下查询:

查询执行没有错误,但约束的名称没有改变。

有人知道为什么吗?

0 投票
1 回答
3298 浏览

mysql - mysql 检查约束,其中两列之一应为空

(对不起,如果这是一个重复的帖子,但我似乎找不到这个问题的例子)

我有一个有 4 列的 mysql 表,如下所示:

我现在要做的是添加一个约束,以便始终有一列(column1 或column2)具有空值。我尝试了以下方法:

但它似乎没有工作,因为我仍然可以有这样的情况:

我怎样才能让它工作,以便在尝试 case1 和 case2 时出现错误?

(另外:如果我没记错的话:我使用的约束可以缩短,但我不记得它是如何完成的。所以如果有人帮助我,我会很高兴!)

0 投票
2 回答
1890 浏览

oracle - 在 Oracle 中是否可以有“延迟检查约束”?

我在想我想在 Postgres 中有一个“延迟检查约束”,但目前显然不支持(Postgres 9.3)

然后我看到甲骨文似乎广泛地“推迟”了它的限制,记录在这里。因此,Oracle 10g+ 是否支持“延迟检查约束”?

相反,我可能错过了进一步的文档,所以我想在这里问一下作为双重检查,相信有些人积极使用 Oracle 会知道答案 - 从而避免反复试验,浪费时间搞乱甲骨文服务器。

0 投票
3 回答
429 浏览

sql - 如何在 sql server 中删除类似 mysql-enum 的列?

为了得到一个类似mysql ENUM类型的列,我写了一个sql查询如下

这如所愿(用于测试):但现在我想删除此列但没有成功。似乎没有办法直接删除对其有约束的列。我该如何解决这个问题?我想删除此列并创建另一列。

这是我在删除时收到的错误消息

0 投票
1 回答
5391 浏览

sql - Complex Check Constraint?

I have a customers table that links to an addresses table through a middle CustomerAddress table. This means that a customer can have many addresses and an address can have many customers. (This is neccessary due to the fact that we deal with spouses and children as seperate customers, and each can have delivery, work, billing and other addresses).

I want a customer to be able to specify a preferred address.

My thought was to create a new column in the customers table that links to a CustomerAddress record.

My problem is- how can I ensure that the selected preferred address is one of that customers addresses?

My thought was to put a Check constraint on the customers.preferredAddress field that checks the given CustomerAddress to see if that records customer ID matches the customer being updated.

Is this possible? I have only ever used Check constraints to check simple stuff like (Value > 0) etc.

Thanks for your help