我有一个名为TEST
的表格:
PAR CHLD
---------------------- ----------------------
1 2
1 3
1 4
2 5
3 6
PAR
和CHLD
列构成复合主键。
我的要求是,如果我更新CHLD
列中的值,则只应接受列中的任何现有值。
这应该会失败,因为值7不在列CHLD
中:
UPDATE TEST SET CHLD = 7 WHERE PAR = 3;
这应该会成功,因为值4在列CHLD
UPDATE TEST SET CHLD = 4 WHERE PAR = 3;
请注意我没有固定值的检查约束,因为我不知道表格设计期间的值列表。
答案 0 :(得分:1)
创建另一个表格,例如儿童,包含有效值(2,3,4,5,6)。然后从TEST表中添加一个引用约束到CHILDREN。