使用变量值进行约束检查

时间:2014-06-18 09:55:06

标签: sql oracle

我有一个名为TEST的表格:

PAR                    CHLD                   
---------------------- ---------------------- 
1                      2                      
1                      3                      
1                      4                      
2                      5                      
3                      6        

PARCHLD列构成复合主键。

我的要求是,如果我更新CHLD列中的值,则只应接受列中的任何现有值。

这应该会失败,因为值7不在列CHLD中:

UPDATE TEST SET CHLD = 7 WHERE PAR = 3;

这应该会成功,因为值4在列CHLD

UPDATE TEST SET CHLD = 4 WHERE PAR = 3;

请注意我没有固定值的检查约束,因为我不知道表格设计期间的值列表。

1 个答案:

答案 0 :(得分:1)

创建另一个表格,例如儿童,包含有效值(2,3,4,5,6)。然后从TEST表中添加一个引用约束到CHILDREN。

相关问题