Изменение значения таблицы SQL со вставками в другую таблицу

Например:

  1. Таблица: Bankaccount, с id как первичный ключ и значение.
  2. Таблица: Category, с id как первичный ключ, имя и тип (логический, 0 для положительных транзакций и 1 для отрицательных)
  3. Таблица: Transaction, с id в качестве первичного ключа, значение (например, -10000$ для покупок) и внешний ключ, который ссылается Category,

Мой вопрос: возможно ли добавить несколько транзакций в Transaction таблица, которая вызывает автоматическое изменение значения в Bankaccount Таблица.

Я надеюсь, что кто-то из вас может помочь мне там!

2 ответа

Решение

Вы должны использовать триггеры: триггер после вставки Примерно так (синтаксис зависит от используемых dbms):

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

DECLARE
   -- variable declarations

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

END;

Надеюсь, что это поможет вам!!!

Я думаю, что это именно то, что я искал, большое спасибо! Я только что попробовал это на базе данных 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;
Другие вопросы по тегам