170 похожих чатов

Есть те, кто юзает горм (не по своей воле  :D)

почему метод Save всегда вызывает инсерт? В доке вижу, что должен быть update, если primary key присутсвует, в ином случае инсерт, но по какой-то причине в логах всегда вижу только insert, даже если праймари кей в модели присутсвует. Не сталкивался никто с таким?

13 ответов

22 просмотра

upsert, он же INSERT ... ON CONFLICT UPDATE

Pavel- Автор вопроса
Dmitry M
upsert, он же INSERT ... ON CONFLICT UPDATE

ага, всегда апсерт, если конкретнее, но в доке вижу, что должно быть "Save is a combination function. If save value does not contain primary key, it will execute Create, otherwise it will execute Update (with all fields).",  хотя в логах вообще не вижу апдейты

Pavel
ага, всегда апсерт, если конкретнее, но в доке виж...

Если СУБД поддерживает upsert, то зачем делать несколько запросов?

Pavel- Автор вопроса
Dmitry M
Если СУБД поддерживает upsert, то зачем делать нес...

А почему несколько запросов? Тут либо апдейт либо инсерт (?), плюсом кое какие нюансы есть с некоторыми поведения апсертов

Pavel
А почему несколько запросов? Тут либо апдейт либо ...

Без механизма upsert будет два запроса: 1. insert; 2. если получили ошибку целостности, то update

Pavel- Автор вопроса
Dmitry M
Без механизма upsert будет два запроса: 1. insert;...

да вроде бы просто "предзапросная" проверка на наличие первичного ключа и оттуда уже выбор запроса(?)

Подай сигнал если тебя держат в плену

приведите пример

Pavel- Автор вопроса
Dmitry M
приведите пример

ну если во внутренности  Save метода залезть, то он проверяет, что первичное поле (т.е поле с тегом primaryKey) не нулевое и делает апдейт и только в противном случае инсерт/апсерт, но я в логах вижу, что даже при наличии первоичного ключа делает инсерт/апсер

А если первичное поле uuid/string, который генерится на стороное приложения?

Pavel- Автор вопроса
Dmitry M
А если первичное поле uuid/string, который генерит...

в моем случае оно всегда с gorm.Model, т.е интовое. Мб как-то с типом связано? Хз

Pavel
в моем случае оно всегда с gorm.Model, т.е интовое...

Если решать задачу в общем виде, то проверка на пустое/не пустое поле не очень работает

Pavel- Автор вопроса
Dmitry M
Если решать задачу в общем виде, то проверка на пу...

не, это горм так рулит на своем уровне, точнее должен, но чет апдейты никогда не происходят

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта