Jak przełączać pole boolowskie przez sql w postgresql?

15

Istnieje pole, showktóre jest booleantypem w postgesql.

Chcę napisać sql, aby zaktualizować tę tabelę, aby przełączyć wartość show. Jeśli tak true, staje się false, jeśli tak false, to staje się true.

Czy to możliwe?

Freewind
źródło

Odpowiedzi:

23

To wystarczy:

SET show = NOT show

więc wartość

TRUEstaje się FALSE,

FALSEstaje się TRUE,

UNKNOWN( NULL) zostaje UNKNOWN.

ypercubeᵀᴹ
źródło
1
@a_horse_with_no_name: Tak, ale musiałem napisać coś, co obejmowałoby ograniczenie do 30 znaków. Ponieważ już mieliśmy TRUEi FALSE, UNKNOWNodpowiednia była odmiana :)
ypercubeᵀᴹ
To jest niesamowite, eleganckie i dokładnie to, czego chciałem. Bardzo się cieszę, że to nie tylko możliwe MySQL.
sudown
1

Następujące skręcą FALSElub NULLdo TRUEi i TRUEdo FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Kevin Traas
źródło