更新存储过程中每一行的某些id的值

时间:2015-12-06 08:32:28

标签: postgresql stored-procedures triggers

我想创建一个存储过程,在插入,更新和删除操作之后自动更新每个事务类的余额。我有四个属性的关系,id和transaction_class之间的组合是主键。

Transcation

Id  Transaction_Class  Credit   Debit    Balance
-------------------------------------------------
1        1               0      100      200
2        2               0      1000     500
3        1               0      100      200
4        3               0      1000     1000
5        2              500     0        500

如果我'插入

1 个答案:

答案 0 :(得分:0)

以下是使用函数的示例:

架构:

queue.rear+1

定义功能(此功能将余额设置为信用卡和借记卡之间的差额):

CREATE TABLE balances (    
    Id serial,
    Transaction_Class varchar(4),
    Credit float(2),
    Debit float(2),
    Balance float(2)
);

使用功能

插入新数据
CREATE OR REPLACE FUNCTION add_transaction(t varchar(4),c float(2), d float(2)) 
    RETURNS void AS $$
    BEGIN
      INSERT INTO balances 
      (Transaction_Class,Credit,Debit,Balance)
      VALUES (t,c,d,c-d);
    END;
    $$ LANGUAGE plpgsql;