sql >> Database >  >> RDS >> Mysql

Geld overboeken tussen accountID in MySQL

Een cheque toegevoegd voor het bedrag aan het begin van de procedure, en verplaatst naar insert into transfers voor update verklaringen. Er zijn buitenlandse sleutels in transfers tabel die verwijst naar account tabel, dus als u probeert id . in te voegen die niet bestaat, zal onmiddellijk mislukken.

delimiter //
create procedure transfer (amount int, note varchar(50), sending_account 
int, receiving_account int)
this_proc:begin 

start transaction;

if amount <= 0 then
    leave this_proc;
end if;

insert into Transfers values 
(TransfersID, amount, sending_account, receiving_account, note, now());

update Account as A
set A.amount = A.amount - amount
where A.AccountID = sending_account;

update Account as A
set A.amount = A.amount + amount
where A.AccountID = receiving_account;

commit work;

end //
delimiter ;



  1. Gids voor het ontwerpen van een database voor quiz in MySQL

  2. Het selecteren van zowel MIN als MAX uit de tabel gaat langzamer dan verwacht

  3. Slaapstand Jpa - beperking schending uitzondering op primaire sleutel (reeks)

  4. Voorbeelden van het converteren van 'date' naar 'smalldatetime' in SQL Server (T-SQL)