确保组合值是唯一的,但输入任意次 - Mysql

时间:2011-06-01 18:43:37

标签: mysql database-design

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

示例:我有两列:Group_IDGroup_Name。因此,Group_ID = 1的所有数据始终为Group_Name as 'Test1'。我想阻止的是有人'Test2'进入Group_Name Group_ID=1。这应该使插入失败。所有这些数据都直接加载到数据库中,没有任何UI,因此我无法在应用程序中强制执行这些检查。所以我需要的是:

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

Mysql中是否有内置的功能?

1 个答案:

答案 0 :(得分:2)

你应该稍微规范你的桌子。 group_idgroup_name对应位于定义您的论坛的单独表格中,然后您正在使用的表格应该只有group_id。然后,您可以将表中的外键添加到组表中,以确保group_id值引用实际组。

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