使用插入更改SQL表的值到另一个表

时间:2013-06-22 18:57:43

标签: sql database create-table insert-statement

例如:

  1. 表:Bankaccount,主键为id,值为。
  2. 表:Category,主键为id,名称和类型(布尔值,0表示正交易,1表示负数)
  3. 表:Transaction,主键为id,值为(例如-10000 $用于购物)和外键引用Category
  4. 我的问题是,是否可以向Transaction表添加一些事务,这会导致Bankaccount表中值的自动更改。

    我希望你们中的某个人可以帮助我!

2 个答案:

答案 0 :(得分:0)

你必须使用触发器:插入后触发器 像这样的东西(语法取决于使用的dbms):

CREATE or REPLACE TRIGGER trg_transaction
AFTER INSERT
   ON ***transaction***

DECLARE
   -- variable declarations

BEGIN
   -- trigger code
   UPDATE ***bankaccount*** SET ....

END;

希望这会对你有帮助!!!

答案 1 :(得分:0)

我认为这正是我所寻找的,非常感谢你!我只是在H2数据库上尝试过,不知道我做错了什么,也许你也可以帮助我。我的触发器如下所示:

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;