#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
(возможно, обновляется с помощью триггера onproduct
?)2. @Pepper, на самом деле ты был прав! Таблица продуктов имеет 2 уникальных столбца, поэтому один из этих ключей имеет 526 в качестве значения, и ПРИ ОБНОВЛЕНИИ ДУБЛИКАТА КЛЮЧА создается обновление, которое хочет изменить значение одной из этих записей на другой идентификатор.