iT邦幫忙

0

SQL語法 ON CONFLICT ON CONSTRAINT

Ks 2018-10-19 10:48:495420 瀏覽

以下的SQL語法是如果判斷Table1_pkey不存在就新增進去,存在就進行更新資料的動作

目前有部分資料,需要更新其中一個欄位,但是所有欄位設定為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

Ks iT邦新手 3 級 ‧ 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;
Ks iT邦新手 3 級 ‧ 2018-10-19 12:46:57 檢舉
补充 用COALESCE也可以
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答