iT邦幫忙

0

SQL 语法 ON CONFLICT ON CONSTRAINT

sql
ksg 2018-10-19 10:48:491113 瀏覽

以下语法是如果判断Table1_pkey不存在就insert进去,存在就update资料

目前有部分资料,需要更新其中一个column,但是所有栏位设定为not null.
可以确定null的部分key一定存在.

该如何修改下面的SQL语法,让空值的部分成功更新?

INSERT INTO Table1
("x","y","z")
VALUES
(1,null,1111)
ON CONFLICT ON CONSTRAINT Table1_pkey DO
update set "z" = 1111;

https://www.db-fiddle.com/f/mcnNXgFYpuDXB5fFQGhogs/6

ksg iT邦新手 5 級 ‧ 2018-10-19 11:17:01 檢舉
加个 CASE WHEN似乎解决了问题.
INSERT INTO Table1
("x","y","z")
VALUES
(1
,(CASE WHEN 0=0 IS NULL THEN 0 ELSE 1 END)
,1111)
ON CONFLICT ON CONSTRAINT Table1_pkey DO
update set "z" = 1111;
ksg iT邦新手 5 級 ‧ 2018-10-19 12:46:57 檢舉
补充 用COALESCE也可以

尚未有邦友回答

立即登入回答