2013-06-28 114 views
0

我有一個名爲weight_break的表,例如0-10,10-20,20-30。與數據庫中的多行比較

我存儲上述值作爲3個記錄用的列名(PK,FK,FROM_WEIGHT,TO_WEIGHT)如下所述的表WEIGHT_BREAK。

PK | FK | FROM_WEIGHT | TO_WEIGHT |

100 | T1 | 0 | 10 |

101 | T1 | 10 | 20 |

102 | T1 | 20 | 30 |

注:所有3條記錄被FK列,因爲他們對所有三排相同的值有關。

我想確保用戶不應該再次插入0-10,10-20,20-30基本上這3條記錄在一起。我怎麼能做到這一點多行等於數據庫查詢檢查?

回答

0

你可以做FROM_WEIGHT和TO_WEIGHT獨特,像這樣:

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

通過這種方式,用戶將能夠進入一個重量級別從,在你爲同FK上面的表格說0-11,但將無法插入另一個0-10。

希望這會有所幫助。

0

from_weight或to_weight是多餘的,你只需要其中的一個來定義band。然後您只需要一個唯一的約束條件,並且可以通過查詢表格輕鬆地重新構建起始/結束對。