具有2个值的MySQL表约束

具有2个值的MySQL表约束,mysql,Mysql,在我的MySQL数据库中,我有一个存储承包商活动信息的表: `task_id` int(11) DEFAULT '0', `task_date` date DEFAULT NULL, `contractor_id` int(11) DEFAULT '0' 业务逻辑要求任务id的5和6是互斥的,对于任何给定的日期,任何给定的承包商只能拥有其中的1个。 是否有可能对该表施加一些约束以强制执行此逻辑?我认为添加约束不会解决问题。您可以在表插入之前尝试添加一个触发器,并检查您是否尝试插入该承包商id,

在我的MySQL数据库中,我有一个存储承包商活动信息的表:

`task_id` int(11) DEFAULT '0',
`task_date` date DEFAULT NULL,
`contractor_id` int(11) DEFAULT '0'
业务逻辑要求
任务id
的5和6是互斥的,对于任何给定的日期,任何给定的承包商只能拥有其中的1个。
是否有可能对该表施加一些约束以强制执行此逻辑?

我认为添加约束不会解决问题。您可以在表插入之前尝试添加一个
触发器
,并检查您是否尝试插入该
承包商id
,如果其
new.task_id
等于5或6,则应获取此值,如果有任何注册表不符合您的业务指标,请在表上选择
,并避免在插入完成之前添加该注册表。我认为这个简单的解释将帮助您进一步了解这一点。

我希望需要一些复杂的逻辑。谢谢你的链接,这正是我需要的。