[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает ON DUPLICATE KEY UPDATE при INSERT-e
vuler
Добрый день.
Есть 2 таблицы - Таблица свойств товаров goods_prop_val_text
Поля - id,goods_id,prop_id,value
И таблица товаров goods
Поля id,mag_dir_id
Например мы хотим установить какое-то свойство у всех товаров, которые находятся в директории 1(mag_dir_id=1). Причем это свойства у товаров могли быть уже заданы ранее, а может быть и нет. У товаров, у которых не были заданы - нужно добавить, у которых заданы - обновить.

Пример - надо взять все товары в директории "1", и присвоить или изменить их свойтство "2" на значение "6".
Выполняю такой запрос.

"INSERT INTO goods_prop_val_text (goods_id,prop_id,value) SELECT goods.id,'2','6' FROM goods WHERE goods.mag_dir_id='1' ON DUPLICATE KEY UPDATE value='ТЕСТ'"

- ON DUPLICATE KEY UPDATE - не работает. При повтормном запросе записи удваиваются, а не обновляются.
Читал, что может быть проблема в типе таблице, т.к. есть AI, вроде поменял структуру на MyISAM, но это не помогло. Может подскажете, в чем может быть проблема.
Winston
Цитата (vuler @ 13.03.2015 - 13:38)
Может подскажете, в чем может быть проблема

Нету уникального индекса

В твоем случае можно в таблице goods_prop_val_text убрать поле id (если есть такая возможность) и сделать составной индекс (goods_id,prop_id)
Игорь_Vasinsky
Поля - те, которые ты пытаешься обновить при их существовании или создать новую строку при их отсутствии должны быть UNIQUE

Выполни для них (его)

ALTER TABLE TableName ADD UNIQUE (FieldName)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vuler
Игорь, а почему ты ЛжеЭксперт? тебе верить нельзя? smile.gif
Игорь_Vasinsky
vuler
не кому нельзя верить.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
vuler
Мне можно. Я тебя когда-нибудь обманывал?

_____________
[продано копирайтерам]
Игорь_Vasinsky
AllesKlar
не знаю. но хотел точно laugh.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Россия вперёд.
О еще один хохол из киева. Россия вперёд. Смерть нацизму.

Вопрос к модератору Winston ты не нацист случаем.? Сам из киева. Ник американский.

Может и наколочки эсэсовские имеются? Когда здороваешься случаем не зигуешь?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.