Дублированное обновление ключа MySQL не обновляется

У меня есть два уникальных ключа в одной таблице. Я вставляю данные из файла 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". Что мне нужно сделать, чтобы последние метки, «метки», не имели одинакового значения после их обновления?


person Manoj Kumar Giri    schedule 27.04.2015    source источник
comment
Есть ли вероятность того, что ваш 7-й параметр (метки) неожиданно устанавливает старое значение вместо нового значения? Трудно точно сказать, что происходит, не видя фрагментов кода.   -  person Vinbot    schedule 27.04.2015


Ответы (1)


Я подозреваю, что ваша проблема связана с этим вопросом: Поведение MySQL ON DUPLICATE KEY UPDATE для нескольких UNIQUE полей

Из принятого ответа:

UPDATE в ON DUPLICATE KEY UPDATE выполняется, если один из поля UNIQUE равен вставляемому значению.

Похоже, вы ожидаете, что ваш оператор будет вести себя так, как если бы у вас был один составной уникальный ключ, а не два отдельных уникальных ключа.

person Alex Wittig    schedule 27.04.2015