postgresql条件列名=数据
我有三张桌子postgresql条件列名=数据,postgresql,Postgresql,我有三张桌子 table a | uid | name | number | |-----+---------+--------| | 1 | table | 1 | | 2 | chair | 2 | table b | uid | name | number | |-----+---------+--------| | 1 | john | 1 | | 2 | billy | 0 |
table a
| uid | name | number |
|-----+---------+--------|
| 1 | table | 1 |
| 2 | chair | 2 |
table b
| uid | name | number |
|-----+---------+--------|
| 1 | john | 1 |
| 2 | billy | 0 |
| 3 | bob | 2 |
| 4 | sally | 1 |
table c
| uid | table a | john | billy | bob | sally |
|-----+---------+--------+--------+-------|-------|
| 1 | table | T | | | T |
| 2 | chair | | | C | |
我需要做的是查看表c中的列名,找到表b中相应的行条目,如果数字与表a中的数字相同,则将表c值设置为T。否则,将其设置为c。每当更新表a或表b时,都需要触发此操作
如何使用if或case语句编写更新表。
谢谢。为什么不在需要时生成
c
,而不是维护它以进行插入、更新和删除?表a和表b由单独的表自动更新。所以我只想在更新任何一个表时调用一个触发器。您必须有一个很好的理由来解释这种复杂性c
完全是从另外两个表派生出来的,因此单独存储它是糟糕的数据库设计——除非您有充分的理由来冗余它。