У меня есть функция, которая принимает параметр, и я хочу вставить этот параметр в таблицу, только если он не нулевой.Я пытаюсь что-то вроде этого:
CREATE OR REPLACE FUNCTION app.some_function(
my_param integer)
RETURNS void
LANGUAGE 'sql'
COST 100
VOLATILE
AS $BODY$
INSERT INTO app.myTable(something)
VALUES(my_param)
ON CONFLICT(something) DO
UPDATE
SET --someConflictLogic
WHERE my_param <> '' AND my_param IS NOT NULL;
$BODY$;
Я надеялся, что предложение WHERE здесь охватит меня, но это не так.Когда я вызываю эту функцию с my_param как NULL, я получаю:
null value in column "something" violates not-null constraint
Так что, похоже, он все еще пытается вставить ее.Как я могу исправить это состояние?