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

Подскажите, если возможность в запросе вида insert into table_name (f1,

f2, f3...) values (v1,v2,v3...) on conflict (f1) do update set f2=v2, f3=v3
выполнять update только не null значениями?

Например, v2 было null, а v3 нет, в момент обновления для записи прилетело v2 не null, а v3 null?
Есть ли возможность каких либо проверок, чтобы не занулять внесенные ранее значения?

13 ответов

23 просмотра

coalesce

Vladimir-Lepeshko Автор вопроса
Ilya Anfimov
coalesce

спасибо, изучу👍

Vladimir-Lepeshko Автор вопроса
Ilya Anfimov
coalesce

насколько я понял нужно обернуть каждое значение в coalesce? Что то не работает или я неправильно делаю, можешь добавить чуть деталей к подсказке?)

Vladimir Lepeshko
насколько я понял нужно обернуть каждое значение в...

Нужно. Вместе с "дефолтным" старым значением.

Vladimir-Lepeshko Автор вопроса
Kairat
set f2 = coalesce(v2, f2), f3 = coalesce(v3, f3)

ааа, сейчас попробую!)

Kairat
set f2 = coalesce(v2, f2), f3 = coalesce(v3, f3)

Я бы сказал set f2=coalesce(excluded.f2, table_name.f2), ...

Vladimir-Lepeshko Автор вопроса
Ilya Anfimov
Я бы сказал set f2=coalesce(excluded.f2, table_nam...

Вариант status = coalesce(status, 'done') возвращает ошибку error: column reference "status" is ambiguous Вариант status = coalesce((select status from items where account_id=23456), 'done') работает, но у меня около 8 - 10 таких полей и select в каждом выглядит очень нагроможденно Может я снова неверно указываю аргументы в функции?

Vladimir Lepeshko
Вариант status = coalesce(status, 'done') возвра...

Ну, попробуйте теперь именно так, как я посоветовал.

Vladimir-Lepeshko Автор вопроса
Ilya Anfimov
Ну, попробуйте теперь именно так, как я посоветова...

Сработал status = coalesce(table_name.status, 'done') Спасибо за помощь)

Vladimir Lepeshko
Сработал status = coalesce(table_name.status, 'don...

Я бы сказал, что скорее надо наборот. Но, в общем, тут сами решайте.

вы уверены, что используете верный status? Выглядит так, будто меняете значение на то же самое значение

Vladimir-Lepeshko Автор вопроса
Kairat
вы уверены, что используете верный status? Выгляди...

Создание записи специфично, тут уже много деталей по приложению. Мне важен был сам принцип - не занулять значения ни в коем случае) Далее, уже буду разбираться в конкретных кейсах задачи

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта