Форум сайта python.su
dimabestХм… INSERT OR REPLACE… Не знал такого. Спасибо.
именно REPLACE
Офлайн
dimabestФакт, работает. Я повёлся на сообщение троля и проверил update. Спасибо, буду юзать.
именно REPLACE
Офлайн
ZZZREPLACE нужно использовать когда в таблице есть первичный ключ. В примере автора топика столбец с unique как раз первичный ключ для таблицы.dimabestЧто будет, если у таблице два unique-поля и запрос перекрывает уникальность сразу двух объектов? Заменить оба сразу не получится? :-)
именно REPLACE
Офлайн
dimabestНикогда не работал с MySQL (PostgreSQL – наше всё!) и поэтому просто не сталкивался.
В sqlite запрос с replace работает так же как в MySQL
dimabestЭто не по Дзен, так как не очень очевидно. ИМХО, лучше таких вещей на практике не использовать.
Если в базе есть Петя Сидоров, и Вася Иванов с отдельными unique на имя и фамилию то при replace Пети Иванова - предыдущие 2 записи будут удалены, а Петя Иванов вставится. Можете использовать как фичу :-)
alexx11Троля? Знаешь что, мальчик, следи за словами. Я тоже не Бог и могу иногда ошибаться, хотя с базами данных работаю уже много лет. Всё.
Я повёлся на сообщение троля и проверил update.
Офлайн
ZZZНе могу с вами согласиться, коллега. Именно на практике то как раз и можно. Если, конечно, понимаешь зачем, почему и, самое главное, как (т.е. механизм).
Это не по Дзен, так как не очень очевидно. ИМХО, лучше таких вещей на практике не использовать.
Отредактировано (Май 19, 2010 01:22:51)
Офлайн
LexanderНа самом деле я не много о другом… Про использование плюшек БД я полностью согласен, но с одной оговоркой – понять код должен человек, не знающий этих плюшек.
Аналогично и с нестандартными фичами любой СУБД. Если фича вне стандарта, но помогает ускорить обработку запросов, то это один из самых что ни на есть практических приемов оптимизации. REPLACE в MySQL - одна из таких фич.
Офлайн