¿Cómo alternar un campo booleano por sql en postgresql?

15

Hay un campo showque es un booleantipo en postgesql.

Quiero escribir un sql para actualizar esa tabla, para alternar el valor de show. Si es true, se convierte false, si es false, se convierte true.

¿Es posible?

Viento libre
fuente

Respuestas:

23

Esto lo hara:

SET show = NOT show

entonces un valor de

TRUEse convierte FALSE,

FALSEse convierte TRUE,

UNKNOWN( NULL) se queda UNKNOWN.

ypercubeᵀᴹ
fuente
1
@a_horse_with_no_name: Sí, pero tuve que escribir algo para cubrir la limitación de 30 caracteres. Como ya teníamos TRUEy FALSE, una variación UNKNOWNfue apropiada :)
ypercubeᵀᴹ
Esto es impresionante, elegante y exactamente lo que quería. Muy contento de que esto no solo sea posible MySQL.
retirado el
1

Lo siguiente girará FALSEo NULLhacia TRUE, y TRUEhacia FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Kevin Traas
fuente