Použijte NE :
UPDATE table SET boolean_field = NOT boolean_field WHERE id = :id
Když se stará hodnota rovná FALSE, změní se na TRUE a naopak. Pole NULL se nepřeklopí, není zde nic, na co by se dalo převrátit.
Úplný příklad:
CREATE TABLE test(id serial, boolean_field boolean);
INSERT INTO test(boolean_field)
VALUES(null),(false), (true)
RETURNING *;
A spusťte test:
UPDATE test
SET boolean_field = NOT boolean_field
RETURNING *;