【发布时间】:2019-11-11 03:52:07
【问题描述】:
我有一个名为Student 的表,该表有两列Student_Id 和Is_Honor_Student(这是一个标志列0 或1 代表真/假)
我有另一个名为 Honor_Student 的表,其中有 2 列 Student_Id 和 Class_Id,以及一些与此问题无关的附加列。
当然是第三张表Class,它有一个Class_Id 列。
最后是一个名为Enrollment 的表,其中Student_Id 和Class_Id 引用Student 和Class 表。
好的,所以我想要一个约束来检查如果学生是荣誉学生,那么在允许我将记录插入Enrollment 表之前,Honor_Student 表中必须存在一个条目。如果学生不是荣誉学生,则此限制不适用。我怎样才能做到这一点?
顺便说一句,我使用的是 jdbc liquibase,所以我将非常感谢任何使用 liquibase 的示例:https://www.liquibase.org/documentation/changes/add_check_constraint.html
但对于初学者来说,即使使用Alter Table 或可以使这成为可能的某种方法,我也非常感谢朝着正确的方向前进……从技术上讲,我认为我正在寻找带有@987654340 的“条件”外键约束@ 和 Class_Id 引用 Honor_Student 表,但前提是它是荣誉学生......这有点奇怪。
【问题讨论】: