Em 15 de março de 2011 09:31, Jean Pereira
<[email protected]> escreveu:
> Bom dia.
> Aqui da empresa, um programador estava com problemas com a soma de um campo
> null com 1, por exemplo.
> Ele tinha uma tabela de saldo e fez assim:
> update material set saldo = saldo + 1;
> mas o campo saldo tinha o valor null, e gostaria de saber se é normal o
> banco nem se quer dar um warning avisando da soma "errada", ou se está
> correto a soma retornar null mesmo.

O seu problema é conceitual. Vejamos: NULL, significa "não sei". Se
você não sabe quanto tem, e soma 1, você continua não sabendo quanto
tem, certo?

Veja que NULL e Zero são coisas diferentes. 0 + X = X. NULL + X = NULL.

Então
* você tem um problema de semântica na sua aplicação (porquê raios
alguém vai querer somar um número a NULL???) e neste caso, você
precisa mexer na modelagem e/ou regra de negócios
* Você precisa tratar as entradas com NULL utilizando uma expressão
condicional, como o COALESCE:
http://www.postgresql.org/docs/9.0/static/functions-conditional.html#AEN15541

Espero ter ajudado.
-- 
Atenciosamente,
Fábio Telles Rodriguez
blog: http://www.midstorm.org/~telles/
e-mail / gtalk / MSN: [email protected]
Skype: fabio_telles
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a