[英]Create another table TRANS_TEMP from TRANSACTION table by change the column name acc_no to account_no
[英]My sql transaction to transfer 1000 from one account to another account in a single table account(name,balance)
我的SQL交易如何在一个表帐户(名称,余额)中将1000从一个帐户转移到另一个帐户?
我在下面的查询中写了,我不确定如何检查条件。
START TRANSACTION
UPDATE account SET balance = balance - 100 WHERE name = 'D'
UPDATE account SET balance = balance + 100 WHERE name = 'A'
COMMIT
如何在转账前检查条件是否足够?
使用存储过程来定义事务:
DELIMITER $$
DROP PROCEDURE IF EXISTS sample_balance_transfer $$
CREATE PROCEDURE sample_balance_transfer ()
BEGIN
DECLARE balance_var INT DEFAULT 0;
SELECT IFNULL(balance,0)
INTO balance_var
FROM account
WHERE name = 'D';
IF balance_var >= 1000 THEN
START TRANSACTION;
UPDATE account
SET balance = balance - 1000
WHERE name = 'D';
UPDATE account
SET balance = balance + 1000
WHERE name = 'A';
COMMIT;
END IF;
END $$
DELIMITER ;
然后执行存储的过程:
CALL sample_balance_transfer();
注意-可能要添加退出处理程序以获取错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.