PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como alternar um booleano no postgres em uma consulta


Use NÃO :
UPDATE table SET boolean_field = NOT boolean_field WHERE id = :id

Quando o valor antigo for igual a FALSE, ele se transforma em TRUE e vice-versa. Um campo NULL não vai virar, não há nada para virar.

Exemplo completo:
CREATE TABLE test(id serial, boolean_field boolean);

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

E execute o teste:
UPDATE test
SET boolean_field = NOT boolean_field 
RETURNING *;