我已经搜索了我的问题的解决方案和question describes it perfectly。
假设我有一个名为ProjectTimeSpan的表(我没有,只是作为示例!),其中包含StartDate和EndDate列。
我还有另一个名为SubProjectTimeSpan的表,它还包含名为StartDate和EndDate的列,我想在其中设置一个Check约束,使得无法将StartDate和EndDate设置为ProjectTimeSpan.StartDate到ProjectTimeSpan“之外”的值。结束日期
一种知道另一个表值的Check约束...... 这可能吗?
但是我很难实现oracle的解决方案。当其他文章声明检查约束不能与其他表格相关时,我更加困惑。
答案 0 :(得分:2)
不,不能。
FOREIGN KEY
约束可以(并且必须)与另一个表相关,但它只能执行等同性检查。
即。你可以测试一列(或一组列)与另一个表中的列相同但不是更复杂的条件(如跨度或其他内容)。
你必须为此实现一个触发器。