sql – oracle db中具有多个字段的条件唯一约束
发布时间:2020-12-12 06:05:24 所属栏目:MsSql教程 来源:网络整理
导读:我有这张桌子: XPTO_TABLE (id,obj_x,date_x,type_x,status_x) 我想创建一个唯一的约束,仅当status_x时才应用于字段(obj_x,type_x). 5. 我试图创建这个,但Oracle说: line 1: ORA-00907: missing right parenthesis CREATE UNIQUE INDEX UN_OBJ_DT_TYPE_STAT
我有这张桌子:
XPTO_TABLE (id,obj_x,date_x,type_x,status_x) 我想创建一个唯一的约束,仅当status_x<>时才应用于字段(obj_x,type_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:看起来您正在尝试确保您的表只包含一个状态为<> 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); 希望能帮助到你 Vishad (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQL Server SQL批量插入数据几种方案的性能详细对比
- SQL Server:事务内部的“DROP TABLE”会导致隐式提交?
- SQL SELECT WHERE字符串以Column结尾
- MS SQL Server上的ODBC查询仅在PHP PDO(FreeTDS)中返回前25
- SqlServer: 单用户模式下查杀相关进程实现单/多用户转换 .
- sql-server – 在创建表后调用insert时出现“无效的列名”错
- sql-server – ASP.NET MVC缓存因身份验证而异
- sqlserver 综合总结
- 安装sqlserver2008 framework 3.5
- sql-server – 缺少主表节点
推荐文章
站长推荐
热点阅读