Я новичок в SQL, и мне очень трудно настроить этот триггер.Это для JDBC Bank Console.
У меня есть схема с тремя объектами: USER, ACCOUNT и TRANSACTION.Я хочу отслеживать все изменения, которые пользователь вносит в одну из своих учетных записей, вставляя новую строку в мою сущность транзакции, которая имеет столбцы с идентификатором
, который я обрабатываюс последовательностью:
user_id (ссылка на внешний ключ, сохраненный в сущности счета),
- account_id (ссылка на первичный ключ объекта счета),
- отметка времени (для которой я использую функцию Oracle CURRENT_TIMESTAMP),
- и тип транзакции, который имеет тип «депозит» или «снятие».
Вот как выглядит мой триггер прямо сейчас.
CREATE OR REPLACE TRIGGER ADD_TX
ON ACCOUNT
AFTER INSERT, UPDATE
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE old_balance number, new_balance number, transaction_type varchar2(100);
BEGIN
transaction_type := CASE WHEN :NEW.balance < :OLD.balance THEN 'WITHDRAWAL' ELSE 'DEPOSIT' END;
INSERT INTO TRANSACTIONS VALUES(TRANSACTION_ID_SEQ.NEXTVAL, :NEW.USER_ID, :NEW.id, CURRENT_TIMESTAMP, :NEW.account_type, transaction_type);
end if;
END;
/
Любое руководство будет наиболее ценно