Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DELIMITER $$
- CREATE PROCEDURE usp_transfer_money(from_account_id INT,to_account_id INT, money_amount DECIMAL(19,4))
- BEGIN
- START TRANSACTION;
- UPDATE accounts SET accounts.balance = accounts.balance - money_amount
- WHERE accounts.id = from_account_id;
- UPDATE accounts SET accounts.balance = accounts.balance + money_amount
- WHERE accounts.id = to_account_id;
- IF (((SELECT balance FROM accounts WHERE id = from_account_id) < money_amount) OR (money_amount <= 0))
- THEN
- ROLLBACK;
- ELSEIF(((SELECT id FROM accounts WHERE id = from_account_id) < 0) OR ((SELECT id FROM accounts WHERE id = to_account_id) < 0))
- THEN
- ROLLBACK;
- ELSEIF(((SELECT COUNT(id) FROM accounts) < from_account_id) OR (SELECT COUNT(id) FROM accounts) < to_account_id)
- THEN
- ROLLBACK;
- ELSEIF(from_account_id = to_account_id)
- THEN
- ROLLBACK;
- ELSE
- COMMIT;
- END IF;
- END $$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement