序列中的Oracle约束

克里斯·伯鲁斯

我正在尝试在必须在序列内的列上创建约束(即col_name < seq.maxval

我尝试使用常规约束,但该列没有任何要绑定的内容-它只是一个序列,而不是表中的列。

检查不能引用任何类型的查询,因此我也不认为这行得通。

ALTER TABLE STE_FILECOLL ADD (
  CONSTRAINT STE_FC_CLFC_REF_STEF_IDFILE
  FOREIGN KEY (CLFILECOLL) 
  REFERENCES ????
  ENABLE VALIDATE
);

我希望有一种方法可以确保一列的值在一个序列内,但是一个小时的阅读文档和duckduckgoing一直没有结果,所以我转向这里。

巴巴罗斯·奥赞

Oracle DB版本中12c,序列的下一个值可能设置为列的默认值:

create table STE_FILECOLL
(
  col0     int default seq1.nextval not null,
  col_name int
);

然后可以添加检查约束以提供所需的条件,如:

alter table STE_FILECOLL
  add constraint STE_CC_CLFC_REF_STEF_IDFILE
  check (col_name < col0); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章