mysql - 复合键是否允许重复

标签 mysql sql constraints composite-key

我需要知道 Composite 键是否允许其中有重复值?

例如:

我有 2 个表。

1) 表 'Student' 包含字段 studentID(PK),standard,address。

2) 包含字段 classID(PK)、classname、studentID(FK) 的表“Class”。

通过将组合键设置为 (classID,studentID),是否允许重复值??

我想知道的是,是否可以在Class Table的classID字段中输入重复值?因为我不能在 classID 中输入重复值,因为它是一个主键字段。

复合键能帮助我实现这一目标吗?请帮助我。

最佳答案

在复合键中,整个元素集必须是唯一的,但每个元素可以重复多次。

因此,

  • 如果您在 Student 中有几条记录 studentID = 1, 2, 3...
  • 对于 Class 也是如此

-> 然后你的第三个表有复合键

(1, 1)
(2, 2)
(1, 2)
...

您可以看到多个记录具有相同的 studentId(此处为 1)或 classId(此处为 2),但整个组合绝不会相同。

关于mysql - 复合键是否允许重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18334762/

相关文章:

mysql - MVC 4 从新创建的条目中检索数据库 ID

postgresql - 多对多约束到同一个父表

ios - 使用约束为 3.5 和 4 英寸屏幕开发相同的 UI(仅限纵向模式)

ios - 如何快速调整表格单元格内受约束的 imageView 的大小?

php - MySQL - 从3个表中获取数据

php - 如何在 PHP 中转义 mysqli_query() 中的双引号字符?

php - MySQL使用多个表查找一条记录

c# - 如何在 C# 中比较字符串值

php - PHP/MySQLi 查询的 Ajax 调用返回错误结果

mysql - C - 将数组作为参数传递并更改大小和内容