问答题
阅读下列说明,回答问题1至问题3,将解答填入对应栏内。
【说明】
某银行的转账业务分为如下两类操作:
(1)读取账户A余额到变量x,记为x=R(A);
(2)将变量x值写入账户A中的余额,记为W(A,x)。
从账户A向账户B转账金额x元的伪代码操作序列为:a=R(A),=a=a-X,w(A,a), b=R(B),b=b+x,W(B,b)。
针对上述业务及规则,完成下列问题:
若用SQL语句编写的转账业务事务程序如下:
START TRANSACTION;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
UPDATE Accounts
SET CurrentBalance=CurrentBalance-Amount
WHERE Account ID=A;
if error then ROLLBACK;
COMMIT;
UPDATE Accounts
SET CurrentBalance=CurrentBalance+Amount
WHERE AccountID=B;
if error then ROLLBACK;
COMMIT;
其中:Accounts为账户表,CurrentBalance为当前余额,Amount为新存入的金额。
该事务程序能否保证数据的一致性如不能,请说明原因并改正。(100字以内)