解决方法:在大富翁游戏的数据库中,如果turn_number=0(开始回合),设置银行账户金额=3000;

How to fix: In a database of a monopoly game, if turn_number=0 (start turn), set bank account amount=3000;

触发在一个大富翁游戏的数据库中,如果turn_number=0(开始回合),设置银行账户金额=3000;

Create or replace trigger initial_turn
after insert on Recap_turn
for each row
when (new.turn_number=0)
declare 
    i integer;
    PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
    i:=3000;
    update Recap_turn
    set bank_account_amount=i
    where (id_turn=:new.id_turn); commit;
end;

插入后bank_account_amount保持不变,而不是改为3000

如果你想使用触发器:

CREATE OR REPLACE TRIGGER initial_turn
BEFORE INSERT ON Recap_turn
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW 
begin
    if inserting and :new.turn_number = 0 then
        :new.bank_account_amount := 3000;
    end if;
end;