我想创建一个存储过程,在插入,更新和删除操作之后自动更新每个事务类的余额。我有四个属性的关系,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
如果我'插入
答案 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;