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