check-constraints相关内容
哪些 SQL 数据库(如果有)支持 CHECK 约束中的子查询? 目前,据我所知,Oracle、MySQL 和 PostgreSQL 还没有. 编辑 (基于初步答案的澄清.)我正在寻找这样的东西: CREATE TABLE 人员 (...,部门 VARCHAR(64) NOT NULL,工资 NUMERIC NOT NULL,CHECK (salary >= (SELECT M
..
我有一个用户表,例如: 创建表“用户"(id 序列主键,名称文本不为空,超级用户 boolean not null 默认 false); 还有一张工作表: 创建表作业 (id 序列主键,描述文字); 作业可以分配给用户,但只能分配给超级用户.其他用户不能分配作业. 所以我有一个表格,可以看到哪个作业分配给了哪个用户: 创建表 user_has_job (user_id 整数引用“用
..
我可以在 Check 约束中进行 SQL 子查询吗? 我有一个 post 表,其中包含 id, owner 列我有另一个表 action 列 user_id, post_id 表 user 与列 id post_id ->post.id 和 user_id ->user.id 也是 post.owner ->user.id 现在我想在 action 表上限制 post(po
..
我正在 db2 中创建一个数据库,我想添加一个约束来验证用户是否插入了包含 %@%.% 的有效电子邮件地址.没有运气......有什么建议吗? 解决方案 您可以将 LIKE 与通配符一起使用.请参阅 这里 获取 DB2 上的通配符. 下划线字符 (_) 代表任何单个字符. 百分号字符 (%) 表示零个或多个字符的字符串. 选择电子邮件从你的桌子WHERE email NOT
..
我想为 Postgres CHECK IN 违规创建更具体的错误消息.例如,在列上违反了以下 CHECK 约束: management_zone varchar(15) NOT NULL CHECK (management_zone IN ('Marine', 'Terrestrial') ), 应返回自定义错误消息,例如:“提示:检查拼写.仅允许输入:'Marine'、'Terrestria
..
在我的职业生涯中,我遇到过几次这个问题,但我当地的同行似乎都无法回答.假设我有一个表,它有一个“描述"字段,它是一个候选键,但有时用户会在过程中途停止.因此,对于可能有 25% 的记录,该值是 null,但对于所有非 NULL 的记录,它必须是唯一的. 另一个例子可能是一个表,它必须维护一个记录的多个“版本",一个位值指示哪个是“活动"的.所以“候选密钥"总是被填充,但可能有三个相同的版本(
..
我们在 Oracle 数据库中的表上遇到了一个奇怪的情况,删除一列会导致更改另一列的默认值.这是场景. 我的表中有一些示例数据: select * from SAMPLE_TABLE ;ID BUSINESS_KEY----------------------------------------- ---------------e59bf31c-49a4-4638-bf6e-7d1be60
..
我正在使用 Oracle 11g,并尝试创建一个表,定义对创建的约束. 我试图添加检查约束来验证一些信息(如电子邮件地址、电话号码等...) Oracle 11g 中是否有允许我执行此类操作的内容? constraint CK_CONSTRAINT_NAME check (EMAIL like 'REGEX') 我想使用的正则表达式(从 regexLib 中抓取)是: ^[a-z
..
我正在使用 SQLite,它不支持添加 约束到现有表. 所以我不能做这样的事情(仅作为示例): ALTER TABLE [客户]添加约束指定_either_phone_or_email检查(([电话] 不为空)或([电子邮件] 不为空)); 这种情况有什么解决方法吗? 我知道: 我可以为新表添加约束,但它不是新的(它是由我的 ORM、EF Core 生成的) 我可以进行“表
..
这张桌子有问题 创建表`参与者`(`meetid` int(11) 非空,`pid` varchar(15) 非空,`status` char(1) 默认为空,PRIMARY KEY (`meetid`,`pid`),约束`participants_ibfk_1`外键(`meetid`)参考`Meetings`(`meetid`)删除级联约束`participants_ibfk_2`检查(状态I
..
首先我创建了一个表格 创建表客户(SD整数检查(SD > 0),姓氏 varchar (30),名字 varchar(30)); 然后在该表中插入值 INSERT INTO Customer values ('-2','abc','zz'); MySQL 没有显示错误,它接受了值. 解决方案 MySQL 8.0.16 是第一个支持 CHECK 约束的版本. 阅读https:/
..
假设,我有下表: 创建表“用户"(id BIGINT PRIMARY KEY NOT NULL,电话1 VARCHAR,phone2 VARCHAR); 我需要实现以下限制:表中的所有电话号码(如果有)必须是唯一的. 即数据库不应允许以下任何一种情况: id |电话1 |电话21 |111 |111身份证 |电话1 |电话 21 |111 |空值2 |111 |空值身份证 |电话1 |
..
我正在尝试创建一个约束来检查记录是否大于2016年. 这是我数据库中的记录
..
给出一个名为 requests 的PostgreSQL表,该表具有一个名为 status 的列和一个约束,如下所示: ALTER TABLE请求添加约束条件检查(状态输入('待定',-尚未尝试请求'成功',-请求成功'失败'-请求失败)); 在 psql 中,我可以像这样拉出有关此约束的信息: example-database =#\ d个请求表"public.example-data
..
说有一个约会表,用于列出具有startDatetime和endDatetime的经理(或HR)列表,然后如何仔细设计该表,以使其不接受同一经理重复的下一个条目(如果他/她拥有)与其他人约会. 如果经理:A从 2016-01-01 11:00到2016-01-01 14:00 与 Employee-1 进行了约会那么如果 Employee-2 (或其他雇员)尝试从 20-16-01-01 13
..
我有一个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
..
我正在用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
..
我需要确定在INSERT OR IGNORE语句之后导致约束检查失败的行. 我需要此工具来生成SQL语句,因此我无法将其绑定到具有特定表的特定用例. 这里的挑战是我不知道为要插入的特定表设置了哪些约束.它可能具有外键或UNIQUE约束,甚至可能附加了CHECK子句. 因此,我可以从INSERT中学到的只是它失败了.现在,我如何知道插入的哪一行? 说明: 我需要一个使用
..
我有这张桌子. 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, [
..