当前位置:  开发笔记 > 后端 > 正文

在SQL中,我如何才能有两个不能相同的字段,只有一个是主键

如何解决《在SQL中,我如何才能有两个不能相同的字段,只有一个是主键》经验,为你挑选了1个好方法。

我正在使用MySQL,我有三个表,一个任务表,一个产品表和一个描述两者之间关系的表:每个产品由几个任务组成,每个任务可以在多个产品中找到.

描述两者之间关系的表有两个主键,ProductID和TaskID也都是外键.在这个表中,我有一个名为TaskOrder的字段,对于给定的Product,它列出了必须执行任务的顺序.

我想要的是,对于任何产品,你不能拥有相同TaskOrder的两个任务,但我不能只将TaskOrder设置为唯一,因为不同的产品将(并且应该)具有TaskOrder的重复值

有办法做到这一点吗?



1> Tony Andrews..:

你想要一个UNIQUE约束:

create table ProductTasks
 ( ProductID ...
 , TaskId ...
 , TaskOrder ...
 , primary key (ProductId, TaskId)
 , unique (ProductId, TaskOrder)
 );

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有