我收到一个我不明白的约束错误。
System.Data.ConstraintException: Column 'ID' is constrained to be unique.
Value '01d3eb89-f4e1-4782-9519-da8f08e0638f' is already present.
该值在成员数据中重复 - 我不明白它是如何被限制为唯一的。
查询是
SELECT MemberData.UserId, MemberData.FormRow, MemberData.Value
FROM AuthUsers, MemberData
WHERE (AuthUsers.GroupId = @groupId AND AuthUsers.Id = MemberData.UserId
AND MemberData.FormId = @formId)
Group By MemberData.UserId, MemberData.FormRow, MemberData.Value
AuthUsers
是添加了 groupId
字段(Guid)的 ASP.NET 用户表。
MemberData
是表单数据的数据。它有
FormRow (Guid)
- 指向 FormRow 中的表单定义行
值(字符串)
Id (int)
- 唯一的自增键
UserId(字符串)
- AuthUser 表中的 userId
FormId (Guid)
- 指向 Forms 中的表单定义
成员(member)数据有
MemberData.UserId
对每个 formRow
(用户的表单数据集合)重复。
MemberData.FormRow
对于每个不同的 UserId
都有许多重复,即 FormId's
表单中该 formRow
的每个用户数据。
表单中的每个 FormRow
都会重复 MemberData.FormId
。
MemberData.Value
是任意用户输入的值。
错误是用户 ID 在其所在的五个字段的数据中重复了 5 次。
我正在尝试填充成员网格摘要,获取按 UserId
(即摘要行)分组的 MemberData
中的所有数据行。使用 GroupId
是因为该摘要适用于组中的所有用户。
最佳答案
这有点尴尬,该消息来自正在加载的网格而不是数据库。非常令人困惑,我正在修复一些具有非常相似消息的 SQL 查询问题,并且最终的错误消息看起来就像数据库一致的其他错误消息一样。代码逻辑中的问题已得到解决。
关于sql - 列 'ID' 被限制为唯一。值(value)已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29091096/