0

我有一个名为 weight_break 的表,例如 0-10、10-20、20-30。

我将上述值作为 3 条记录存储在表 WEIGHT_BREAK 中,列名(PK、FK、FROM_WEIGHT、TO_WEIGHT)如下所述。

PK| FK| FROM_WEIGHT| TO_WEIGHT|

100| T1| 0| 10|

101| T1| 10| 20|

102| T1| 20| 30|

注意:所有 3 条记录都由 FK 列相关,因为它们对于所有 3 行具有相同的值。

我想确保用户不应该再次插入 0-10、10-20、20-30 基本上这 3 条记录在一起。我怎样才能做到这一点多行等于检查数据库查询?

4

2 回答 2

0

您可以像这样使 FROM_WEIGHT 和 TO_WEIGHT 独一无二:

alter table weight_break 
add constraint unq_weight_class UNIQUE(FK, FROM_WEIGHT, TO_WEIGHT);

这样,用户将能够从上表中的 0-11 为同一个 FK 输入重量等级,但不能插入另一个 0-10。

希望这可以帮助。

于 2013-06-28T14:02:18.193 回答
0

from_weight 或 to_weight 都是多余的,您只需要其中一个来定义波段。然后,您将只需要一个唯一约束,并且可以通过足够轻松地查询表来重建 from/to 对。

于 2013-07-06T06:57:30.550 回答