Du kan åstadkomma det med hjälp av coalesce
funktion:
INSERT INTO mytable (id,inc) VALUES ('a',1)
ON CONFLICT (id)
DO UPDATE SET inc = coalesce(mytable.inc,0) + 1;
Nyckelpunkten är uttrycket coalesce(mytable.inc,0)
, vilket betyder följande:if mytable.inc
är inte NULL
använd sedan det värdet, annars använd värdet 0
.