Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: ON DUPLICATE KEY UPDATE не обновляет запись [2]
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Нет. На сколько я его правильно понял...
Есть таблица три поля по 1-му и 2-полю есть составной индекс(уникальный).
Допустим id1==>1 и id2==>1 и третье поле text="бла-бла";
Чтобы обновилось поле text запрос д.б таким
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Конечно. Это самое главное. Я для себя уяснил следующее. Индекс что-то типа массива .(составной ассоциативный) Сами понимаете есть массив
$arr1[1][2]=2;
и
$arr2[2][1]=3;
Равенство здесь нет.
P.S я прекрасно понимаю, что это даже близко не подходит под определение И-tree индекса и т.д.
Но мне так проще объяснить.
armancho7777777
Отправлено: 15 Апреля, 2012 - 19:50:07
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
И каким должен быть порядок?
Как в даблице БД самой, или просто индексное поле в запросе должно быть в начале, и потом все остальные?
tuareg
Отправлено: 15 Апреля, 2012 - 19:59:21
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Нет будет тоже самое. Просто если INSERT UPDATE делает 2 запроса( Сначала INSERT, и если совпадение то UPDATE), то REPLACE сделает 3 (INSERT->DELETE->INSERT). И при
REPLACE (я не знаю точно!!!), но возможно сработает и каскадное удаление в таблицах типа INNODB. Плюс наверняка сработают и триггеры на DELETE. Т.е в данном случае мне кажется это не совсем оптимальным вариантом.
armancho7777777
Отправлено: 16 Апреля, 2012 - 12:03:55
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
tuareg пишет:
Т.е в данном случае мне кажется это не совсем оптимальным вариантом.
REPLACE ?
tuareg
Отправлено: 16 Апреля, 2012 - 14:27:06
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
armancho7777777 пишет:
tuareg пишет:
Т.е в данном случае мне кажется это не совсем оптимальным вариантом.
REPLACE ?
Да. Зачем выполнять 3 запроса вместо 2.
armancho7777777
Отправлено: 16 Апреля, 2012 - 15:55:53
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.