在INSERT期间计算列值

Fal*_*gel 4 postgresql calculated-columns

我正在使用Postgresql 8.3

我有一个数据库表,包含buy_value和sell_value.我希望添加一个DEFAULT函数,以便在每个插入时,数据库将根据买入和卖出值计算利润并将其插入相关列...

我该如何定义我的改变?

ple*_*ong 5

它不像更改DEFAULT值那么简单...... 在插入之前你需要一个触发器.(但不建议将计算字段存储在表中,因为您有破坏数据完整性的风险)

看一下这个

http://www.postgresql.org/docs/9.1/static/triggers.html

祝好运


Unr*_*son 5

我真的想不出一个很好的理由在 postgres 中存储这样的计算列。

在写入和读取速度方面 - 额外的 I/O 会产生性能下降,这很难被证明是合理的(可能在大多数 CPU 密集型系统中,但即使如此,对于这种微不足道的操作也没有意义)。

通常存储计算列是创建索引所必需的,但是 postgres 具有功能索引,因此您可以在没有物化列的情况下创建索引,其余目的使用视图。