检查约束可以与另一个表相关吗?神谕

时间:2013-04-16 19:30:25

标签: oracle

我已经搜索了我的问题的解决方案和question describes it perfectly

  

假设我有一个名为ProjectTimeSpan的表(我没有,只是作为示例!),其中包含StartDate和EndDate列。

     

我还有另一个名为SubProjectTimeSpan的表,它还包含名为StartDate和EndDate的列,我想在其中设置一个Check约束,使得无法将StartDate和EndDate设置为ProjectTimeSpan.StartDate到ProjectTimeSpan“之外”的值。结束日期

     

一种知道另一个表值的Check约束......   这可能吗?

但是我很难实现oracle的解决方案。当其他文章声明检查约束不能与其他表格相关时,我更加困惑。

1 个答案:

答案 0 :(得分:2)

不,不能。

FOREIGN KEY约束可以(并且必须)与另一个表相关,但它只能执行等同性检查。

即。你可以测试一列(或一组列)与另一个表中的列相同但不是更复杂的条件(如跨度或其他内容)。

你必须为此实现一个触发器。