【发布时间】:2018-10-16 13:17:40
【问题描述】:
我有一个带有参数的函数,如果它不为空,我只想将该参数插入表中。我正在尝试这样的事情:
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
所以看起来它仍在尝试插入它。我该如何纠正这种情况?
【问题讨论】:
标签: postgresql