我有这张桌子:
XPTO_TABLE (id, obj_x, date_x, type_x, status_x)
我想创建一个(obj_x, date_x, type_x)
仅在时才适用于字段的唯一约束status_x <> 5
。
我试图创建一个,但是Oracle说:
line 1: ORA-00907: missing right parenthesis
CREATE UNIQUE INDEX UN_OBJ_DT_TYPE_STATUS
ON XPTO_TABLE(
(CASE
WHEN STATUS_X <> 5
THEN
(OBJ_X,
TO_CHAR (DATE_X, 'dd/MM/yyyy'),
TYPE_X)
ELSE
NULL
END));
什么是正确的语法?
@jamesfrj:您似乎正在尝试确保您的表应只包含一个记录status <>5
。
您可以尝试通过串联各列来创建唯一的功能索引,如下所示
create table XPTO_TABLE (id number,
obj_x varchar2(20),
date_x date,
type_x varchar2(20),
status_x varchar2(20)
);
create unique index xpto_table_idx1 on XPTO_TABLE(case when status_x <>'5' THEN obj_x||date_x||type_x||STATUS_x ELSE null END);
希望能帮助到你
问题内容: 我有两个表->变量(id,名称)和Variable_Entries(id,var_id,值)。 我希望每个变量都具有唯一的一组条目。如果我使值条目唯一,那么其他变量将无法具有相同的值,这是不正确的。 有什么办法可以使相同的var_id的value列唯一? 问题答案: 是的: 现在,您对var_id和value有了唯一的约束。换句话说,var_id和value的出现不能出现多次。
我想用插页。。请务必更新。。对两列具有唯一约束的表的语法。这可能吗? mytable对col1和col2有单独的唯一约束。 我可以写: 然而,这不起作用: 错误:冲突时,更新是否需要推理规范或约束名称 这也不起作用: 错误:不存在与冲突规范匹配的唯一或排除约束 这种语法似乎是为两列上的单一复合唯一约束而设计的,而不是两个约束。 如果违反了其中一个唯一约束,有没有办法进行条件更新?这个问题是如何在博
问题内容: 我有一个带有列“ position”的表“ items”。位置具有唯一且非空的约束。为了在位置x插入新行,我首先尝试增加后续项的位置: 这导致了唯一的约束冲突: 问题似乎出在PostgreSQL执行更新的顺序上。PostgreSQL <9.0中的唯一约束是不可延迟的,不幸的是,当前无法使用9.0。另外,UPDATE语句不支持ORDER BY子句,并且以下命令也不起作用(仍然重复键冲突)
我想添加一个约束,只在表的一部分中对列强制唯一性。 上面的部分是一厢情愿的想法。 有办法吗?还是应该回到关系绘图板?
问题内容: 有没有一种方法可以使用JPA指定在不同的列集上应该有多个唯一约束? 我已经看到了特定于hibernate的注释,但是由于我们仍在确定hibernate和数据核之间的关系,因此我试图避免使用特定于供应商的解决方案。 问题答案: 所述的属性实际接受的这些阵列。您的示例只是具有单个元素的数组的简写。否则,它看起来像: 只要唯一性约束仅基于一个字段,就可以在该列上使用。
问题内容: 我需要一个Java实现,它忽略类中字段的顺序。首先,节点可以是第二个节点,第二个可以是节点优先。 这是我的方法取决于顺序: 有没有一种方法可以计算出以下边缘相同但唯一的哈希值? 应该是。 问题答案: 您可以使用某种交换运算来代替现在的运算,例如加法: 我建议您仍然使用乘数,因为它为哈希码提供了一些熵。在这里查看我的回答: 遵循一些良好的哈希规则是: 混淆您的运营商。通过混合您的运算符,