问题标签 [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.
sql-server - 检查约束 - 如何检查表中的相同参数?
我有表调用' Users
'并且在UserID
那里。
我也有表调用 UsersFriends,看起来像:
如您所见,UserID
并且FriendID
是来自Users(UserID).
我想确保没有像 (1,1) 这样的 enrty 因为不能成为自己的朋友。所以,我试着做检查但不是..我试着这样做:
但我有错误:
有人可以帮助我吗?
谢谢。
postgresql - PostgreSQL 检查约束未在 Join 中传递
考虑以下结构,标题和行表,它们都按日期分区:
如果我查看以下查询的解释计划:
它同时调用检查约束并且仅物理扫描“2014”分区。
但是,如果我使用不等式:
检查约束在表头上调用,但不在行上,查询将扫描整个 line_2013 表,即使记录不存在。我的想法是,由于 order_date 包含在联接中,因此一个表中对其的任何限制都会传播到联接表,但情况似乎并非如此。
如果我明确表示:
然后一切都按预期工作。
我的问题是:我现在知道这一点,并且可以在 where 子句中添加额外的限制,但我担心的是其他所有人都在使用不知道这样做的数据库。我是否可以进行结构(或其他)更改来解决此问题?我尝试添加外键约束,但这并没有改变计划。
此外,查询本身实际上是在物理扫描 2013 表。这不仅仅是解释计划。
编辑:
我确实将此提交给错误,但似乎这种行为不太可能改变......这就是促使我看到解决方法的原因。
对我的报告的回应是:
如果我专门在 h 和 l 表上调用范围,它将正常工作,但由于连接指定这些字段必须相同,该条件可以自动传播吗?
不。我们目前推断出相等性,因此规划器能够从您的查询中提取约束 l.transaction_date = '2014-03-01' (然后使用它来推断 l 的孩子的检查约束)。但是对于不等式没有可比性,并且不清楚将这样的逻辑添加到规划器中是否会是一个净赢。它会比相等的情况更复杂,也不太有用。
sql - 如何在 SQL 中编写允许一系列字符串或空白值的 CHECK 约束?
我正在尝试为 SQL 中的一个字段编写一个检查约束,该约束允许一系列字符串(在本例中为省名)或空白值。当前代码是这样的:
这适用于 ADM1 字段,但如果新记录中的 ADM1 字段存在空白/空值,则会导致错误。我尝试了以下两个选项,但都不起作用:
将 HSQLDB 与 OpenOffice Base 一起使用。谢谢!
PS我在这里使用检查而不是外键约束的原因与使用OO Base表单的一些挑战有关......
sql - 插入分区表返回违反检查约束,但不应该
我在 postgresql 中有一个表,我希望它被分区。结构如下
然后我创建了一些继承 Tabel "DTD1"."logAdminActivity" 的分区表,如下所示:
之后,我在用户名列中为每个分区表创建索引。然后我创建这个触发函数并在下面触发调用该触发函数。因此,当我插入数据时,对应的表列将被重定向到正确的分区表中。
然后我通过插入程序进行测试,例如
但是为什么它返回错误看起来像这样
错误:关系“logadminactivity_subyek”的新行违反检查约束“logadminactivity_subyek_check” 详细信息:失败行包含(asdf、bla、subyek、12312、2014-01-01 02:02:03)。
怎么会发生,因为我尝试遵循此文档?
http://www.postgresql.org/docs/9.3/static/ddl-partitioning.html
我认为上面查询中的 'tabel' 值('subyek')与触发函数不匹配,但是当我检查时检查约束它通过。有没有我想念的部分,或者有什么解决方案可以解决这个问题?
问候
sql - MSSQL为子查询创建表CHECK
我猜“CREATE TABLE CHECK”中不允许子查询(只允许当前值)。但我想检查表中当前行外部的条件,如下所示:
伪代码:
我想检查这个条件:检查(以下 OLNY 一个可以与现有记录重复:登录名、姓氏或名字。其他两个可能不会)
怎么做?(请写代码,不只是提示。谢谢)
样本数据
现存的:
- 珍妮,史密斯,简,榆树海峡。
- 约翰尼,史密斯,约翰,榆树海峡。
- 阿尔瓦罗, 希门尼斯, 阿尔瓦罗, 5th Av.
允许插入/更新:
- Greenhorn、Prochazka、Martin、MyStreet#1
- 约翰尼,机器人,5 号,陆军 Str。
- GodLike,史密斯,No5,Army Str。
不允许:
- 约翰尼,史密斯,约翰,66 号公路
- 阿尔瓦罗,罗马,阿尔瓦罗,下海峡。
- 阿尔瓦罗、罗曼、约翰、唐斯特。
为了最容易理解什么是不允许的:如果“名称”值之一是重复的,其余的必须是唯一的
oracle - Oracle 数据库数据建模器检查约束
我需要在域管理中对 Oracle SQL developer 3.1.07 上的日期字段创建检查约束。
我创建了检查约束并将我的域分配给逻辑模式中的字段。转换为关系模式后,约束在 DDL 预览中不可见。
谢谢, 马蒂亚
sql - CHECK 约束不起作用
我必须根据以下条件在表上创建一个检查约束。
1. 如果 ColumnX=1 那么 ColumnY 不应该为 NULL
2. 如果 ColumnX<>1 那么 ColumnY 可以为 NULL
我在下面尝试过,似乎没有检查值。
不确定约束中的逻辑是否正确
mysql - MySQL - 将 CHECK 添加到列
另一个我确信是一个非常基本的 MySQL 问题。
我将“zip”限制为仅值“11111”,但它让我输入“99999”没问题。我错过了什么?
sql-server - 使用函数检查约束
我有一个名为 Users 的表,其中包含以下列:UserID (int) UserName (nvarchar)、Password (nvarchar)、isActive (bit - true/false)。
我想要做的是仅当所有其他具有此用户名的用户都被禁用时才允许插入重复的用户名。
我创建了这个函数:
如果有使用此用户名的活动用户,此函数将返回 true,否则返回 false。
之后,我根据该函数的返回值创建了检查约束:
如果没有具有此用户名的活动用户,则允许插入...但是由于某种原因,当我尝试插入新用户时,无论我尝试使用什么用户名,我都会收到此错误:
请帮忙?非常感谢!!
sqlite - AutoIncrement 是否适用于检查约束?
问题很简单:在 SQLite 中,如果我选择 AutoIncrement 类型的主键,NUMERIC
它具有类似的检查约束CHECK(LENGTH(ID) == 10)
,它将第一个值插入为 0000000001 等是否可以正常工作?