| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > REPLACE = ??? |
| Автор: Wiedzmin 9.7.2006, 10:24 |
| Запрос REPLACE еквивалентен: 1) DELETE, а потом INSERT или 2) SELECT (проверяем есть ли такая строчка), а потом UPDATE по всем полям или 3) Это вообще уникальная команда, выполняет запрос быстрее двух предыдущих ) ? |
| Автор: Wiedzmin 10.7.2006, 09:16 |
А если строчка еще не вставлена и нечего UPDATE по указанным WHERE. Т.е. тут либо SELECT ... ; if ( есть строки ) UPDATE ...; else INSERT ...; Либо сразу один REPLACE |
| Автор: Bikutoru 10.7.2006, 10:30 | ||
Скорее всего REPLACE. Правда, если в таблице есть поле AUTO_INCREMENT, чье значение потом потребуется, то с REPLACE могут возникнуть проблемы - в таком случае лучше использовать |
| Автор: Wiedzmin 10.7.2006, 18:57 |
| Без автоинкримента ). Уникальный индекс - один. |
| Автор: Mephisto 10.7.2006, 20:21 | ||
А чем тебе тогда replace поможет? Он работает как и update на созданных записях. Разве что в тригере на инсерт может обработать новую. |
| Автор: Wiedzmin 10.7.2006, 20:35 |
| Mephisto, не, REPLACE это как раз аналог INSERT, который не выдает ошибку, если попалось уже существующее уникальное значение по какому-то полю, а заменяет |
| Автор: Bikutoru 11.7.2006, 09:16 |
Тогда делай REPLACE, если тебя не смущает, что в твоем скрипте будет неизвестно, овномлетсяли какая-то запись или вставляется новая |
| Автор: Mephisto 11.7.2006, 09:24 | ||
Покажи че ты пишешь! |
| Автор: Wiedzmin 11.7.2006, 09:57 | ||
Просто там разные возможности оптимизации если я знаю, что была запись или не было ее )). Если один РЕПЛЕЙС будет оптимальнее этого всего, то наверно его надо ставить ). Вот я и спрашиваю какие действия внутренне делает МуСКЛ и как можно оценить РЕПЛЕЙС Я пишу отметку топиков прочитанными/непрочитанными для форума, где прочтения хранятся в БД Правда сейчас уже над немного другой структурой думаю |
| Автор: Mephisto 11.7.2006, 15:09 |
| Меня интересует сама строка запроса. Насколько я помню в мускуле replace немного в других целях используеться. |
| Автор: Wiedzmin 11.7.2006, 16:18 |
| REPLACE table VALUES (a,b,c,d) Первичный ключ по полям (a,b,c) |