Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 0.90 KB | None | 0 0
  1. DELIMITER $$
  2. CREATE PROCEDURE usp_transfer_money(from_account_id INT,to_account_id INT, money_amount DECIMAL(19,4))
  3. BEGIN
  4. START TRANSACTION;
  5.  
  6. UPDATE accounts SET accounts.balance = accounts.balance - money_amount
  7. WHERE accounts.id = from_account_id;
  8. UPDATE accounts SET accounts.balance = accounts.balance + money_amount
  9. WHERE accounts.id = to_account_id;
  10.  
  11.         IF (((SELECT balance FROM accounts WHERE id = from_account_id) < money_amount) OR (money_amount <= 0))
  12.         THEN
  13.             ROLLBACK;
  14.         ELSEIF(((SELECT id FROM accounts WHERE id = from_account_id) < 0) OR ((SELECT id FROM accounts WHERE id = to_account_id) < 0))
  15.         THEN
  16.             ROLLBACK;
  17.         ELSEIF(((SELECT COUNT(id) FROM accounts) < from_account_id) OR (SELECT COUNT(id) FROM accounts) < to_account_id)
  18.         THEN
  19.             ROLLBACK;
  20.         ELSEIF(from_account_id = to_account_id)
  21.         THEN
  22.             ROLLBACK;
  23.         ELSE
  24.             COMMIT;
  25.         END IF;
  26. END $$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement