SQL主键重复值

t_C*_*mer 2 sql database primary-key duplicates

我有一个带有2个主键列的表:IDStudentID

ID列设置为isIdentity = Yes自动递增。

我之前已经对其进行了多次测试,但是由于某种原因,这次,当我在上插入重复值时StudentID,它不会抛出错误,而是将其添加到数据库中。显示表格数据时,将显示2个相同的值。

这可能是什么问题?

use*_*514 5

您在ID和都有复合主键StudentID。这意味着您ID和StudentID的组合必须唯一。因为ID是一个标识列,所以ID和的组合StudentID将始终是唯一的(因为ID它本身已经是唯一的)。

您可以将主键更改为ID仅打开。然后,您可以在添加唯一索引StudentID。例如:

create unique index idx_studentID on yourTable(StudentID)
Run Code Online (Sandbox Code Playgroud)

这样可以确保StudentID列实际上仅包含唯一值。

看来您可能实际上并不需要ID专栏,但这比您最初的问题要广泛得多。