PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment basculer un booléen dans postgres en une seule requête

Utilisez NON :

UPDATE table SET boolean_field = NOT boolean_field WHERE id = :id

Lorsque l'ancienne valeur est égale à FALSE, elle devient TRUE et vice versa. Un champ NULL ne sera pas retourné, il n'y a rien à retourner.

Exemple complet :

CREATE TABLE test(id serial, boolean_field boolean);

INSERT INTO test(boolean_field) 
VALUES(null),(false), (true) 
RETURNING *;

ET lancez le test :

UPDATE test
SET boolean_field = NOT boolean_field 
RETURNING *;