重复密钥更新 MySQL 未更新
Duplicate key update MySQL not updating
我有两个唯一键合而为一 table。我正在插入来自 csv 文件的数据。
唯一键是:enrollmentNo
和 subjectCode
我的查询是:
Insert into result_stud_det(enrollmentNo,departmentCode,subjectCode,semester,marks,enrSubjCode) values (?,?,?,?,?,?) "
+ "ON DUPLICATE KEY UPDATE previousMarks=marks, marks=?;
数据更新时出现问题。最后的 "marks" 更新保持不变。 csv 文件中的第一个数据被复制到具有唯一 enrollmentNo 的每隔一列和任何 subjectCodes。
这是因为它只是在寻找唯一键 "enrollmentNo"。
我需要做什么才能使最新标记 "marks" 在更新后没有相同的值?
我怀疑你的问题与这个问题有关:MySQL behavior of ON DUPLICATE KEY UPDATE for multiple UNIQUE fields
来自接受的答案:
UPDATE in ON DUPLICATE KEY UPDATE is performed if one of the UNIQUE field equals the value to be inserted
听起来您希望您的语句表现得好像您有一个复合唯一键,而不是两个单独的唯一键。
我有两个唯一键合而为一 table。我正在插入来自 csv 文件的数据。
唯一键是:enrollmentNo
和 subjectCode
我的查询是:
Insert into result_stud_det(enrollmentNo,departmentCode,subjectCode,semester,marks,enrSubjCode) values (?,?,?,?,?,?) "
+ "ON DUPLICATE KEY UPDATE previousMarks=marks, marks=?;
数据更新时出现问题。最后的 "marks" 更新保持不变。 csv 文件中的第一个数据被复制到具有唯一 enrollmentNo 的每隔一列和任何 subjectCodes。 这是因为它只是在寻找唯一键 "enrollmentNo"。 我需要做什么才能使最新标记 "marks" 在更新后没有相同的值?
我怀疑你的问题与这个问题有关:MySQL behavior of ON DUPLICATE KEY UPDATE for multiple UNIQUE fields
来自接受的答案:
UPDATE in ON DUPLICATE KEY UPDATE is performed if one of the UNIQUE field equals the value to be inserted
听起来您希望您的语句表现得好像您有一个复合唯一键,而不是两个单独的唯一键。