0

UNIQUE KEY是否可以在其中创建一个多列MySQL,其中只有当 1 列不是默认值时它才是唯一的,即。

UNIQUE KEY (`col1`, `col2` IS NOT DEFAULT)

或者

UNIQUE KEY (`col1`, `col2` = 1 )

...

我有一个这样的表结构 -

CREATE TABLE IF NOT EXISTS `student_chapters` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `student_id` INT NOT NULL,
  `chapter_id` INT NOT NULL,
  `primary` INT NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`student_id`,`chapter_id`);

学生可以有多个“章节”,但只有一个可以是“初级”。因此,如果我有以下 3 行student_id=> 1

id | student_id | chapter_id | primary
1    1            1            0
2    1            2            0
3    1            3            1

我可以插入这个(主要是 0 [默认])-

id | student_id | chapter_id | primary
4    1            4            0

但不是这个(主要是1)

id | student_id | chapter_id | primary
4    1            4            1

因为第 3 行已经存在唯一键 ( student_id=>1, primary=1)。

如果UNIQUE KEY像这样是不可能的,还有其他方法可以做到这一点吗?

4

0 回答 0