如何强制执行约束检查以确保给定的值组合是唯一的,但可以输入任意次数?
示例:我有两列:Group_ID
和Group_Name
。因此,Group_ID = 1
的所有数据始终为Group_Name as 'Test1'
。我想阻止的是有人'Test2'
进入Group_Name
Group_ID=1
。这应该使插入失败。所有这些数据都直接加载到数据库中,没有任何UI,因此我无法在应用程序中强制执行这些检查。所以我需要的是:
多个列的唯一约束,但仅适用于给定的组合,而不检查它们输入的次数。
Mysql中是否有内置的功能?
答案 0 :(得分:2)
你应该稍微规范你的桌子。 group_id
,group_name
对应位于定义您的论坛的单独表格中,然后您正在使用的表格应该只有group_id
。然后,您可以将表中的外键添加到组表中,以确保group_id
值引用实际组。
如果您无法规范化表格,那么您可能必须使用前插入和更新前触发器,以确保Group_ID
和Group_Name
始终根据需要聚集在一起。