PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

postgres sql, como incrementar quando existe nulo


Você pode fazer isso com a ajuda do coalesce função:
INSERT INTO mytable (id,inc) VALUES ('a',1)
ON CONFLICT (id)
DO UPDATE SET inc = coalesce(mytable.inc,0) + 1;

O ponto chave é a expressão coalesce(mytable.inc,0) , o que significa o seguinte:if mytable.inc não é NULL em seguida, use esse valor, caso contrário, use o valor 0 .