Предположим, у меня есть следующая таблица Postgres:
id: PK
foo: boolean
bar: varchar
со следующими псевдоданными:
id|foo|bar
------------------
1 | 1 |watermelon
------------------
2 | 0 |watermelon
------------------
3 | 1 |apple
Я ищу написать триггер SQL - или другой подход, еслиболее применимо - это переключает логический столбец foo
для всех строк, имеющих общее значение bar
для UPDATE
или INSERT
, когда значение foo
для 1
.
Итак, если бы я набрал UPDATE
строку PK=2
до foo=1
, это бы перевернуло PK=1
на foo=0
на основе их общего значения bar=watermelon
(и всех остальных, если больше).
Или, если бы было INSERT
(1,apple)
, это бы перевернуло PK=3
на foo=0
на основе их общего значения bar=apple
.
Большое спасибо заранее. Я могу с готовностью увидеть, как это сделать, исходя из своей бизнес-логики, но хотел бы изучить надежный подход на стороне SQL, если это возможно.