SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 01.08.2012 17:05:20

Comendor
Участник
Зарегистрирован: 01.08.2012
Сообщений: 2

Не работает ON DUPLICATE KEY UPDATE

Помогите разобраться с проблеммой
Есть табличка

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.
Бьюсь уже пол дня.

Неактивен

 

#2 01.08.2012 18:50:18

Comendor
Участник
Зарегистрирован: 01.08.2012
Сообщений: 2

Re: Не работает ON DUPLICATE KEY UPDATE

Тему можно закрыть. Ошибку нашел, на таблице  висит триггер в котором ON DUPLICATE KEY UPDATE не используется. А в какой именно процедуре происходит ошибка MySQL не выдает, поэтому и думал что здесь траблы.

Отредактированно Comendor (01.08.2012 18:52:01)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson