PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So schalten Sie einen booleschen Wert in Postgres in einer Abfrage um

Verwenden Sie NICHT :

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

Wenn der alte Wert gleich FALSE ist, wird er zu TRUE und umgekehrt. Ein NULL-Feld wird nicht umgedreht, es gibt nichts zum Umklappen.

Vollständiges Beispiel:

CREATE TABLE test(id serial, boolean_field boolean);

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

UND den Test ausführen:

UPDATE test
SET boolean_field = NOT boolean_field 
RETURNING *;