MySQL — поиск записи, которая ведет к дублированию записи в таблице ссылок, на основе номера записи из сообщения об ошибке

#mysql #phpmyadmin

#mysql #phpmyadmin

Вопрос:

У меня есть этот запрос:

 INSERT INTO `product`(`id`, `active`, `barcode`, `code`, `manufcode`, `manufname`, `name`, `taxid`, `unitname`, `pantheon_code_list`) 
                                             SELECT `id`, `active`, `barcode`, `code`, `manufcode`, `manufname`, `name`, `taxid`, `unitname`, `pantheon_code_list` FROM product_sync
                ON DUPLICATE KEY UPDATE 
                    id = product_sync.id, 
                    active = product_sync.active, 
                    barcode = product_sync.barcode, 
                    manufcode = product_sync.manufcode, 
                    manufname=product_sync.manufname, 
                    name=product_sync.name, 
                    taxid=product_sync.taxid, 
                    unitname=product_sync.unitname, 
                    pantheon_code_list=product_sync.pantheon_code_list
  

У меня есть таблица product_tr, которая имеет внешний ключ для продукта (id), и когда я запускаю вышеуказанный запрос (в phpMyAdmin), я получаю эту ошибку:

 #1761 - Foreign key constraint for table 'product', record '526' would lead to a duplicate entry in table 'product_tr', key 'PRIMARY'
  

Теперь вопрос в том, как определить, какая запись основана на записи ‘526’ из сообщения об ошибке?

Или есть какой-либо механизм, подобный запросу подсказки в MySQL, чтобы я получил более подробную информацию о строке, которая вызывает это нарушение ограничения?

Комментарии:

1. Каков ваш первичный ключ в product таблице? Есть ли у вас какие-либо строки, где указано первичный ключ = 526? У вас есть другая таблица с именем product_tr (возможно, обновляется с помощью триггера on product ?)

2. @Pepper, на самом деле ты был прав! Таблица продуктов имеет 2 уникальных столбца, поэтому один из этих ключей имеет 526 в качестве значения, и ПРИ ОБНОВЛЕНИИ ДУБЛИКАТА КЛЮЧА создается обновление, которое хочет изменить значение одной из этих записей на другой идентификатор.