2011-06-01 52 views
0

如何执行约束检查以确保给定的值组合是唯一的,但可以输入任意次数?确保值的组合是唯一的,但输入任意次数 - Mysql

示例:我有两列:Group_IDGroup_Name。所以Group_ID = 1的所有数据将始终有Group_Name as 'Test1'。我想要阻止的是有人输入'Test2'Group_Name,其中Group_ID=1。这应该会导致插入失败。所有这些数据都直接加载到数据库中而没有任何用户界面,因此我无法在应用程序中执行这些检查。所以我需要的是:

对多个列的唯一约束,但仅限于给定的组合,而不检查它们输入的次数。

有没有建立在Mysql的任何东西来做到这一点?

回答

2

你应该正常化你的表。 group_id,group_name对应在一个单独的表格中,该表格定义了您的组,然后您正在使用的表格应该只有group_id。然后,您可以将表中的外键添加到组表中以确保您的group_id值参考真实组。

如果您无法规范化表格,那么您可能必须使用插入之前和更新触发器之前,以确保Group_IDGroup_Name始终按照需要组合在一起。