@Gahoy

Как оптимизировать запрос SQL которое должен обновлять данные?

У меня есть такая база (простой пример):
640a12080a1dd888467871.jpeg

И такой код, для обновления данных:
UPDATE accounts
        SET email = $2, first_name = $3, last_name = $4
        WHERE id = $1
        RETURNING *


Вот выше мне совсем не нравиться что если в таблице `accounts` будет много полей (аналогично и в других таблицах), то мне придется все обновлять, даже если пользователь обновил к примеру только `last_name`.

Как мне это оптимизировать ? Чтобы запросы просто так не были громоздкими. И как это решается в больших проектах?

ps: На ум приходит создание динамического запроса. То есть строки SQL, но... Безопасно это, или велосипед?
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
UPDATE accounts
SET 
    email = COALESCE($2, accounts.email) , 
    first_name = COALESCE($3, accounts.first_name) , 
    last_name = COALESCE($4, accounts.last_name) 
WHERE id = $1
RETURNING *


В случае если значение переменной NULL то обновления не будет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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