Como alternar um campo booleano por sql no postgresql?


15

Há um campo showque é um booleantipo no postgesql.

Eu quero escrever um sql para atualizar essa tabela, para alternar o valor de show. Se é true, se torna false, se é false, se torna true.

É possível?

Respostas:


23

Isso fará:

SET show = NOT show

então um valor de

TRUEtorna-se FALSE,

FALSEtorna-se TRUE,

UNKNOWN( NULL) fica UNKNOWN.


1
@a_horse_with_no_name: Sim, mas tive que escrever algo para cobrir a limitação de 30 caracteres. Uma vez que já tinha TRUEe FALSE, uma variação UNKNOWNera apropriado :)
ypercubeᵀᴹ

Isso é incrível, elegante e exatamente o que eu queria. Ultra feliz que isso não seja apenas possível no MySQL.
sudowned

1

O seguinte será para FALSEou NULLpara TRUEe TRUEpara FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.