我正在使用Postgresql 8.3
我有一个数据库表,其中包含 buy_value 和 sell_value 。我希望添加一个DEFAULT函数,以便在每个插入时,数据库将根据买入和卖出值计算利润并将其插入相关列...
我该如何定义我的改变?
答案 0 :(得分:5)
它不像更改DEFAULT值那么简单......在插入之前你需要一个触发器。 (但不建议将计算字段存储在表中,因为您有破坏数据完整性的风险)
检查出来
http://www.postgresql.org/docs/9.1/static/triggers.html
祝你好运
答案 1 :(得分:4)
我真的不能想到在postgres中存储这样的计算列的充分理由。
在写入和读取的速度方面 - 额外的I / O会产生性能损失,这很难被证明是合理的(可能在大多数CPU绑定系统中,但即便如此,对于这种微不足道的操作也没有意义)。
通常存储计算列是创建索引所必需的,但postgres具有functional indexes,因此您可以创建索引而不使用具体化列,并且出于其余目的使用视图。