Don't update column if update value is null

前端 未结 3 1775
没有蜡笔的小新
没有蜡笔的小新 2021-02-02 06:18

I have a query like this (in a function):

UPDATE some_table SET
  column_1 = param_1,
  column_2 = param_2,
  column_3 = param_3,
  column_4 = param_4,
  column_         


        
3条回答
  •  后悔当初
    2021-02-02 06:33

    Additionally, to avoid empty updates:

    UPDATE some_table SET
      column_1 = COALESCE(param_1, column_1),
      column_2 = COALESCE(param_2, column_2)
      ...
    WHERE id = some_id;
    AND  (param_1 IS DISTINCT FROM column_1 OR
          param_2 IS DISTINCT FROM column_2 OR
          ...
         );
    

    This assumes target columns to be defined NOT NULL. Else, see Geir's extended version.

提交回复
热议问题