#mysql #sqlexception
Вопрос:
Я пытаюсь обновить запись в таблице, и она выдает следующую ошибку:
Error Code: 1062. Duplicate entry '5452' for key 'device_id'
От
update device_info set serial_number = '728015162815' , ip_address = '192.168.77.121' , location_code = '1', battery_status = 'Not Charging : 36%'
where device_id = 5452
Что здесь происходит? Я могу понять эту ошибку при вставке, но это происходит в инструкции update.
Комментарии:
1.
SHOW TRIGGERS
?2. @BillKarwin Спасибо, я только что понял, что кто-то добавил триггеры в таблицу без информирования меня. Они были причиной ошибки ключа dupe.
Ответ №1:
Для справки, в комментариях выше показано решение.
Таинственные ошибки, которые кажутся невозможными, учитывая выполняемую вами инструкцию SQL, могут быть вызваны другой инструкцией SQL. Как это может произойти? Это может быть запущено триггером, созданным вашим ОБНОВЛЕНИЕМ.
Триггер может вставлять строку в какую-либо другую таблицу, что приводит к ошибке дублирования ключа. Или триггер может изменить значение в уникальном столбце обновляемой текущей строки, что также может привести к той же ошибке.
Это покажет вам, какие триггеры существуют:
SHOW TRIGGERS;