Comment basculer un champ booléen par sql dans postgresql?

15

Il y a un champ showqui est un booleantype dans postgesql.

Je veux écrire un sql pour mettre à jour cette table, pour basculer la valeur de show. Si c'est true, ça devient false, si c'est false, ça devient true.

C'est possible?

Freewind
la source

Réponses:

23

Cela fera:

SET show = NOT show

donc une valeur de

TRUEdevient FALSE,

FALSEdevient TRUE,

UNKNOWN( NULL) reste UNKNOWN.

ypercubeᵀᴹ
la source
1
@a_horse_with_no_name: Oui, mais j'ai dû écrire quelque chose pour couvrir la limite de 30 caractères. Puisque nous avions déjà TRUEet FALSE, une variation sur UNKNOWNétait appropriée :)
ypercubeᵀᴹ
C'est génial, élégant et exactement ce que je voulais. Ultra content que ce ne soit pas seulement possible MySQL.
2012
1

Les éléments suivants se tourneront vers FALSEou NULLvers TRUEet TRUEvers FALSE:

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