我在一个表中有两个唯一键。我正在从csv文件中插入数据。
唯一键是:enrollmentNo
和subjectCode
我的查询是:
Insert into result_stud_det(enrollmentNo,departmentCode,subjectCode,semester,marks,enrSubjCode) values (?,?,?,?,?,?) "
+ "ON DUPLICATE KEY UPDATE previousMarks=marks, marks=?;
数据更新时出现问题。最后更新的“标记”保持不变。将csv文件中的第一个数据向下复制到具有唯一enrollmentNo的所有其他列以及任何subjectCodes。 这是因为它只在寻找唯一的密钥“enrollmentNo”。 我需要做什么才能使更新后的最新标记“标记”没有相同的值?
答案 0 :(得分:1)
我怀疑您的问题与此问题有关:MySQL behavior of ON DUPLICATE KEY UPDATE for multiple UNIQUE fields
从接受的答案:
如果UNIQUE字段的一个等于要插入的值,则执行ON DUPLICATE KEY UPDATE中的UPDATE
听起来你期望你的陈述表现得好像你有一个单一的复合唯一键,而不是两个独立的唯一键。