sql >> Database >  >> RDS >> PostgreSQL

Hoe een boolean in postgres in één query te schakelen

Gebruik NIET :

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

Wanneer de oude waarde gelijk is aan ONWAAR, wordt deze WAAR en vice versa. Een NULL-veld kan niet worden omgedraaid, er is niets om naar te spiegelen.

Compleet voorbeeld:

CREATE TABLE test(id serial, boolean_field boolean);

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

EN voer de test uit:

UPDATE test
SET boolean_field = NOT boolean_field 
RETURNING *;


  1. MySQL-query:alle items ouder dan 1 jaar opvragen

  2. Maak een lege database met behulp van Oracle Database configuratie-assistent

  3. Een gebruiker toestaan ​​de tabelnaam en kolomnaam door te geven terwijl SQL-injectie wordt voorkomen

  4. Is de tekenreeksoperator "+" zo eenvoudig?