Sử dụng KHÔNG ĐƯỢC :
UPDATE table SET boolean_field = NOT boolean_field WHERE id = :id
Khi giá trị cũ bằng FALSE thì nó chuyển thành TRUE và ngược lại. Trường NULL sẽ không lật, không có gì để lật.
Toàn bộ ví dụ:
CREATE TABLE test(id serial, boolean_field boolean);
INSERT INTO test(boolean_field)
VALUES(null),(false), (true)
RETURNING *;
VÀ chạy thử nghiệm:
UPDATE test
SET boolean_field = NOT boolean_field
RETURNING *;