Помогите разобраться с проблеммой
Есть табличка
CREATE TABLE IF NOT EXISTS `b_sale_order_props_value` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ORDER_ID` int(11) NOT NULL,
`ORDER_PROPS_ID` int(11) DEFAULT NULL,
`NAME` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`VALUE` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`CODE` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `IX_SOPV_ORD_PROP_UNI` (`ORDER_ID`,`ORDER_PROPS_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1921 ;
Делаю запрос
INSERT INTO `b_sale_order_props_value`
SET `ORDER_ID`=316,
`ORDER_PROPS_ID`=30,
`NAME`='Адрес',
`VALUE`='Тестовый адрес'
ON DUPLICATE KEY UPDATE `NAME`='Адрес',`VALUE`='Тестовый адрес';
Получаю ошибку
Duplicate entry '316-30' for key 'IX_SOPV_ORD_PROP_UNI'
При этом если делаю update вручную:
UPDATE `b_sale_order_props_value` SET `NAME`='Адрес', `VALUE`='Тестовый адрес' WHERE `ORDER_ID`=316 AND `ORDER_PROPS_ID`=30;
то данные обновляются, такое ощущуние что ON DUPLICATE KEY UPDATE просто игнорится и выполняется обычный INSERT.
Бьюсь уже пол дня.