Come attivare / disattivare un campo booleano di sql in postgresql?


15

C'è un campo showche è un booleantipo in postgesql.

Voglio scrivere un sql per aggiornare quella tabella, per attivare o disattivare il valore di show. Se lo è true, diventa false, se lo è false, diventa true.

È possibile?

Risposte:


23

Questo farà:

SET show = NOT show

quindi un valore di

TRUEdiventa FALSE,

FALSEdiventa TRUE,

UNKNOWN( NULL) rimane UNKNOWN.


1
@a_horse_with_no_name: Sì, ma ho dovuto scrivere qualcosa per coprire la limitazione di 30 caratteri. Dal momento che abbiamo già avuto TRUEe FALSE, una variazione su UNKNOWNera appropriato :)
ypercubeᵀᴹ

Questo è fantastico, elegante ed esattamente quello che volevo. Molto contento che questo non sia solo possibile MySQL.
Sud

1

Quanto segue si trasformerà FALSEo NULLin TRUE, e TRUEa FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.