У меня есть следующая таблица:
CREATE TABLE IF NOT EXISTS categories
(
id SERIAL PRIMARY KEY,
title CHARACTER VARYING(100) NOT NULL,
description CHARACTER VARYING(200) NULL,
category_type CHARACTER VARYING(100) NOT NULL
);
Я использую pg-promise
, и я хочу предоставить дополнительное обновление столбцов:
categories.update = function (categoryTitle, toUpdateCategory) {
return this.db.oneOrNone(sql.update, [
categoryTitle,
toUpdateCategory.title, toUpdateCategory.category_type, toUpdateCategory.description,
])
}
categoryName
-требуется toUpdateCategory.title
- требуется toUpdateCategory.category_type
- необязательно (может быть передано или не определено) toUpdateCategory.description
- необязательно (может быть передано илиundefined)
Я хочу построить UPDATE
запрос на обновление только предоставленных столбцов:
UPDATE categories
SET title=$2,
// ... SET category_type=$3 if $3 is no NULL otherwise keep old category_type value
// ... SET description=$4 if $4 is no NULL otherwise keep old description value
WHERE title = $1
RETURNING *;
Как мне добиться этого необязательного обновления столбца в Postgres?