t_C*_*mer 2 sql database primary-key duplicates
我有一个带有2个主键列的表:ID和StudentID。
ID列设置为isIdentity = Yes自动递增。
我之前已经对其进行了多次测试,但是由于某种原因,这次,当我在上插入重复值时StudentID,它不会抛出错误,而是将其添加到数据库中。显示表格数据时,将显示2个相同的值。
这可能是什么问题?
您在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专栏,但这比您最初的问题要广泛得多。