sql >> データベース >  >> RDS >> Mysql

MySQLのaccountID間での送金

    手順の最初に金額のチェックを追加し、insert into transfersを移動しました updateの前 ステートメント。 transfersに外部キーがあります accountを参照するテーブル テーブルなので、idを挿入しようとすると 存在しない場合はすぐに失敗します。

    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. MySQLテーブルからの一意性制約の削除

    2. ログイン試行を抑制する方法-PHP&MySQL&CodeIgniter

    3. データベースがOracleであり、SQLを使用しているバージョンを確認するにはどうすればよいですか?

    4. DOMXPathクエリメソッドを使用してWebサイトをスクレイピングするときに、欠落しているxPathを考慮し、データを均一に保つにはどうすればよいですか?