千家信息网

MySQL事务处理实现方法步骤

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,需求说明:案例背景:银行的转账过程中,发生意外是在所难免。为了避免意外而造成不必要的损失,使用事务处理的方式进行处理:A账户现有余额1000元,向余额为200的B账户进行转账500元。可能由于某原因:
千家信息网最后更新 2024年11月27日MySQL事务处理实现方法步骤

需求说明:

案例背景:银行的转账过程中,发生意外是在所难免。为了避免意外而造成不必要的损失,使用事务处理的方式进行处理:

A账户现有余额1000元,向余额为200的B账户进行转账500元。可能由于某原因:

A账户在扣除转账金额时发生错误,使用事务回滚来返回到初始状态

A账户成功扣除转账金额后,B账户添加转账金额发生错误,使用事务回滚到初始状态

提示:先建数据表account,字段包括姓名(username)、余额(money),再分别利用事务处理以上两种情况。

#创建账户表  CREATE TABLE IF NOT EXISTS account(    id INT(11)NOT NULL AUTO_INCREMENT PRIMARY KEY,    username VARCHAR(32)NOT NULL,    money DECIMAL(9,2)  )ENGINE=INNODB;  #插入用户数据  INSERT INTO account(username,money)VALUES('A',1000.00);  INSERT INTO account(username,money)VALUES('B',200.00);    /*事务处理*/  #  A账户汇款失败  SELECT * FROM account;  #第一步 关闭事务自动提交模式  SET autocommit=0;  #第二步 开始事务  START TRANSACTION;  #第三步 发现汇款失败,将事务回滚ROLLBACK ||  汇款成功将事件commit  #假设语法错误  UPDATE account SET money=money-500 WHERE username='A';  SELECT * FROM account;  UPDATE account SET money=money+200 WHERE username='B';  ROLLBACK;  #第四步 还原Mysql数据库的的自动提交  SET autocommit=1;  SELECT * FROM account;       /*B接收汇款失败*/  SELECT *FROM account ;  SET autocommit =0;  START TRANSACTION;  UPDATE account SET money=money-500 WHERE username='A';  SELECT * FROM account ;  #假设语法错误  UPDATE account SET money=money+200 WHERE username ='B';  ROLLBACK;  SET autocommit =1;  SELECT * FROM account;    #清除数据  
TRUNCATE account;

备注:

使用IF NOT EXISTS创建数据表的解释

事务 账户 数据 转账 处理 汇款 错误 余额 金额 意外 成功 数据表 状态 语法 事件 原因 备注 姓名 字段 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 十堰服务器回收 数据库清空还能查到数据 ftp服务器搭建及管理 数据服务器不能连接 暗黑2 与游戏服务器交换数据时 物流竞价软件开发服务 租用服务器好还是放云平台好 预防网络安全教育心得体会 软件开发中eda是什么意思 网络安全pop字体 网络安全手抄报图片伤感动漫 中心服务器发生错误 北京专业软件开发价格实惠 重庆云服务器ecs 虚拟主机 安徽综合软件开发均价 如何检查是否重复数据库 如何将网页内容和数据库连接起来 国家网络安全中心和中国银行 网络安全法网络服务提供者 软件开发技术会在哪工作 如何加强网络安全的安全性 如何做到网络安全十不准 长沙皇宇网络技术有限公司 管廊管理服务器 阜阳市青创网络技术有限公司 上海惠欣网络技术服务工作室 如何将网页内容和数据库连接起来 福建智能软件开发价格表格 有道翻译王服务器断开 手图片素材软件开发
0