check-constraints相关内容

PostgreSQL 外键条件检查约束

我有一个用户表,例如: 创建表“用户"(id 序列主键,名称文本不为空,超级用户 boolean not null 默认 false); 还有一张工作表: 创建表作业 (id 序列主键,描述文字); 作业可以分配给用户,但只能分配给超级用户.其他用户不能分配作业. 所以我有一个表格,可以看到哪个作业分配给了哪个用户: 创建表 user_has_job (user_id 整数引用“用 ..
发布时间:2022-01-20 12:27:35 其他开发

如何编写查询以确保电子邮件包含 @

我正在 db2 中创建一个数据库,我想添加一个约束来验证用户是否插入了包含 %@%.% 的有效电子邮件地址.没有运气......有什么建议吗? 解决方案 您可以将 LIKE 与通配符一起使用.请参阅 这里 获取 DB2 上的通配符. 下划线字符 (_) 代表任何单个字符. 百分号字符 (%) 表示零个或多个字符的字符串. 选择电子邮件从你的桌子WHERE email NOT ..
发布时间:2022-01-14 22:14:32 其他开发

SQL 我可以有一个“条件唯一"吗?对表的约束?

在我的职业生涯中,我遇到过几次这个问题,但我当地的同行似乎都无法回答.假设我有一个表,它有一个“描述"字段,它是一个候选键,但有时用户会在过程中途停止.因此,对于可能有 25% 的记录,该值是 null,但对于所有非 NULL 的记录,它必须是唯一的. 另一个例子可能是一个表,它必须维护一个记录的多个“版本",一个位值指示哪个是“活动"的.所以“候选密钥"总是被填充,但可能有三个相同的版本( ..

Oracle 11g - 使用 RegEx 检查约束

我正在使用 Oracle 11g,并尝试创建一个表,定义对创建的约束. 我试图添加检查约束来验证一些信息(如电子邮件地址、电话号码等...) Oracle 11g 中是否有允许我执行此类操作的内容? constraint CK_CONSTRAINT_NAME check (EMAIL like 'REGEX') 我想使用的正则表达式(从 regexLib 中抓取)是: ^[a-z ..
发布时间:2021-12-06 08:23:31 数据库

向现有 SQLite 表添加约束

我正在使用 SQLite,它不支持添加 约束到现有表. 所以我不能做这样的事情(仅作为示例): ALTER TABLE [客户]添加约束指定_either_phone_or_email检查(([电话] 不为空)或([电子邮件] 不为空)); 这种情况有什么解决方法吗? 我知道: 我可以为新表添加约束,但它不是新的(它是由我的 ORM、EF Core 生成的) 我可以进行“表 ..

MySQL 中的 CHECK 约束不起作用

首先我创建了一个表格 创建表客户(SD整数检查(SD > 0),姓氏 varchar (30),名字 varchar(30)); 然后在该表中插入值 INSERT INTO Customer values ('-2','abc','zz'); MySQL 没有显示错误,它接受了值. 解决方案 MySQL 8.0.16 是第一个支持 CHECK 约束的版本. 阅读https:/ ..
发布时间:2021-11-20 21:03:46 数据库

跨多列的唯一值约束

假设,我有下表: 创建表“用户"(id BIGINT PRIMARY KEY NOT NULL,电话1 VARCHAR,phone2 VARCHAR); 我需要实现以下限制:表中的所有电话号码(如果有)必须是唯一的. 即数据库不应允许以下任何一种情况: id |电话1 |电话21 |111 |111身份证 |电话1 |电话 21 |111 |空值2 |111 |空值身份证 |电话1 | ..
发布时间:2021-09-14 18:40:19 其他开发

PostgreSQL查询约束中允许值的列表?

给出一个名为 requests 的PostgreSQL表,该表具有一个名为 status 的列和一个约束,如下所示: ALTER TABLE请求添加约束条件检查(状态输入('待定',-尚未尝试请求'成功',-请求成功'失败'-请求失败)); 在 psql 中,我可以像这样拉出有关此约束的信息: example-database =#\ d个请求表"public.example-data ..

SQL面试:防止日期范围重叠

说有一个约会表,用于列出具有startDatetime和endDatetime的经理(或HR)列表,然后如何仔细设计该表,以使其不接受同一经理重复的下一个条目(如果他/她拥有)与其他人约会. 如果经理:A从 2016-01-01 11:00到2016-01-01 14:00 与 Employee-1 进行了约会那么如果 Employee-2 (或其他雇员)尝试从 20-16-01-01 13 ..
发布时间:2021-04-24 21:22:49 其他开发

Postgres 9.x中CHECK约束的成本是多少?

我有一个60列的表格.其中的20个为"NotEmpty",和6个"NotNull". 我有空值和空值(在我的情况下,始终表示“无数据").我只想用一种约束类型来统一列. 我已读取null值便宜(以字节为单位).那么也许使用NotEmpty约束?但是,也许NotNull约束的执行效果更好?还是最好同时拥有两个值并在检索数据时使用coalesce()? 在Postgres 9.x中I ..

约束基于另一列的一列

我有一个表"Table",其中包含一个ID,Col1和Col2,Col3. Col2可以为0或1. 我希望在Col1具有相同值的行中使用Col2相同. 例 我想要这样的东西 +----+-------+------+-----------+ | ID | Col1 | Col2 | Col3 | +----+-------+------+-----------+ | 1 ..
发布时间:2020-07-19 20:13:41 数据库

检查日期约束

我正在用date列创建一个表.我想添加一个检查约束以验证日期是否在将来. create table test_table ( schedule_date date not null, check (schedule_date >= TODAY) ); 上面的sql给我一个语法错误. 09:43:37 [CREATE - 0 row(s), 0.000 secs] [Er ..
发布时间:2020-07-19 20:13:36 其他开发

通常在SQLite中标识导致约束冲突的rowid

我需要确定在INSERT OR IGNORE语句之后导致约束检查失败的行. 我需要此工具来生成SQL语句,因此我无法将其绑定到具有特定表的特定用例. 这里的挑战是我不知道为要插入的特定表设置了哪些约束.它可能具有外键或UNIQUE约束,甚至可能附加了CHECK子句. 因此,我可以从INSERT中学到的只是它失败了.现在,我如何知道插入的哪一行? 说明: 我需要一个使用 ..
发布时间:2020-07-19 20:13:34 数据库

检查约束SQL中的IF

我有这张桌子. CREATE TABLE [dbo].[Tipo_Servicios_Info]( [TSI_TS_Id] [int] NOT NULL, [TS_Tar_Id] [int] NOT NULL, [TS_PDI_Id] [int] NOT NULL, [TSI_Descripcion] varchar(100), [TSI_FechaIni] date not null, [ ..
发布时间:2020-07-19 20:13:30 数据库