все достаточно просто при обновлении в trm_in_items добавляется новое поле unique_item_id. Из trm_in_item_property_values удаляется поле item_id и добавляется новое поле unique_item_id. Все бы не плохо но в trm_in_item_property_values создается PRIMARY KEY (`nomenclature_id`,`unique_item_id`,`property_code`), вместо PRIMARY KEY (`nomenclature_id`,`item_id`,`property_code`). И здесь как раз может появиться ошибка указанная выше. Получается так, что в таблице trm_in_items товары могут быть удалены, а в trm_in_item_property_values остались какие-то осколки данных. Запросом выше я вычислял эти осколки. После чистки все доехало без проблем.
это запрос на котором все качественно складывается:
ALTER TABLE trm_in_item_property_values
DROP COLUMN item_id,
CHANGE COLUMN unique_item_id unique_item_id BIGINT(20) NOT NULL ,
DROP PRIMARY KEY,
ADD PRIMARY KEY (nomenclature_id, unique_item_id, property_code);