sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo alternar un booleano en postgres en una consulta

Use NO :

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

Cuando el valor anterior es FALSO, se convierte en VERDADERO y viceversa. Un campo NULL no cambiará, no hay nada que cambiar.

Ejemplo completo:

CREATE TABLE test(id serial, boolean_field boolean);

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

Y ejecuta la prueba:

UPDATE test
SET boolean_field = NOT boolean_field 
RETURNING *;