例如:
- 表:
Bankaccount
,带有一个id
作为主键和一个值。 - 表:
Category
,带有一个id
作为主键、一个名称和一个类型(布尔值,0 表示正交易,1 表示负交易) - 表:
Transaction
,id
作为主键,一个值(例如 -10000$ 用于购物)和一个引用的外键Category
。
我的问题是是否可以向Transaction
表中添加一些事务,这会导致表中值的自动更改Bankaccount
。
我希望你们中的某个人可以在那里帮助我!
例如:
Bankaccount
,带有一个id
作为主键和一个值。Category
,带有一个id
作为主键、一个名称和一个类型(布尔值,0 表示正交易,1 表示负交易)Transaction
,id
作为主键,一个值(例如 -10000$ 用于购物)和一个引用的外键Category
。我的问题是是否可以向Transaction
表中添加一些事务,这会导致表中值的自动更改Bankaccount
。
我希望你们中的某个人可以在那里帮助我!
我想这正是我正在寻找的,非常感谢!我只是在 H2-Database 上尝试过,不知道我做错了什么,也许你也可以在那里帮助我。我的触发器如下所示:
create trigger transaction_trig_value_ai after isert of value on transaction
declare
v_value double;
v_type_category boolean;
cursor c_value IS SELECT value from transaction where id = :NEW.idcategory;
cursor c_type_kategorie IS SELECT type from category where id = :NEW.idcategory;
begin
open c_value;
fetch c_value into v_value;
close c_value;
open c_type_category;
fetch c_type_category into v_type_category;
close c_type_category;
if v_type_category == 0 then
update bankaccount
set value = value + v_value;
end if;
if v_type_category == 1 then
update bankaccount
set value = value - v_value;
end if;
您必须使用触发器:插入后触发器类似这样的东西(语法取决于使用的 dbms):
CREATE or REPLACE TRIGGER trg_transaction
AFTER INSERT
ON ***transaction***
DECLARE
-- variable declarations
BEGIN
-- trigger code
UPDATE ***bankaccount*** SET ....
END;
希望对你有帮助!!!