暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 结合唯一约束和检查约束

ASKTOM 2021-06-30
512

问题描述

你好,问一下汤姆团队。

我想确保对具有唯一 (column1,column2) 的表 (数百万行) 的约束,并在 (11,14,15) 中检查colump3。

有没有办法用约束来实现这一点?

最好的方法是什么?

它有什么性能影响?



专家解答

就像这样:

create table t (
  c1 int, c2 int, c3 int
);

alter table t add
  unique ( c1, c2 );
  
alter table t add
  check ( c3 in ( 11, 14, 15 ) );


What performance effects does it have?

这取决于。约束可以帮助优化器找到更好的访问路径-例如,它知道c3 = 0不会返回任何行,因此如果查询具有此谓词,则可以完全跳过表。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论