Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
31.01.2020, 12:33
|
|||
---|---|---|---|
|
|||
Найти и обновить VS. удалить и добавить? |
|||
#18+
Приветствую... Добрые люди, подскажите как правильней поступить? Бывает частенько я тяну какие то данные из разных мест и гружу их в таблицу. Пользуюсь методом "удалить и вставить заново", тобишь получив строку, в которой как правило есть первичный ключ (ID), делаю у себя delete по нему и следом insert полученной строки. Вроде просто и быстро. А верно ли так поступать? Может нужно по ключу (ID) попытаться найти запись, если её нет, то уже делать insert, а если запись есть - update. Или же вообще, если по ключу запись в таблице есть, сверять все поля на предмет расхождения и обновлять только в случае, если строки различаются... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.01.2020, 12:49
|
|||
---|---|---|---|
Найти и обновить VS. удалить и добавить? |
|||
#18+
RTFM merge ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.01.2020, 13:08
|
|||
---|---|---|---|
|
|||
Найти и обновить VS. удалить и добавить? |
|||
#18+
Elic, Дело в том, что все выполняется на php с использованием Query Builder, там нет метода для использования merge, изобретать свой тоже не хочется, по этому в принципе и использую: Код: php 1. 2.
В случае, когда нужно проверить наличие строки с ключом, а далее в зависимости от результата обновить или добавить, выходит примерно подобное: Код: php 1. 2. 3. 4. 5.
Какой из методов будет быстрее загружать данные в таблицу мне не принципиальна, больше интересует как это может потом повлиять на выборку этих самых данных? Удаление->вставка не навредит ли индексам, статистике и т.п.? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.01.2020, 13:28
|
|||
---|---|---|---|
|
|||
Найти и обновить VS. удалить и добавить? |
|||
#18+
GlooBus, кажется, сегодня действительно плохой день... а результаты вашего инсёрта и апдейта в пхп можно как-то получит? например, количество строк, которые апдейт проапдейтил? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.01.2020, 13:52
|
|||
---|---|---|---|
Найти и обновить VS. удалить и добавить? |
|||
#18+
GlooBus не навредит ли ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&tablet=1&tid=1881601]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
76ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 292ms |
total: | 454ms |
0 / 0 |