事务操作

摘要:
有两种类型的交易操作:自动交易(默认)和手动交易。步骤1:启动事务并告诉系统以下所有操作不应直接写入数据库,而是保存到事务日志中。语法:starttransaction;步骤2:执行sql语句。步骤3:提交事务(Commit;)或者回滚事务(rollback;),注意,如果我们选择提交事务,我们将直接将存储在事务日志中的记录更新到数据库并清除事务日志。如果我们选择回滚事务,我们将直接

事务的操作分为两种,一种是自动事务(默认的),一种是手动事务。

第一步:开启事务,告诉系统以下的所有操作,不要直接写入到数据库中,先存到事务日志。语法:start transaction;

第二步:执行sql语句。

第三步:提交事务(commit;)或者回滚事务(rollback;),要注意的是:如果我们选择提交事务,则将事务日志存储的记录直接更新到数据库中,并清除事务日志,如果我们选择回滚事务,则直接将事务日志清除,所有在开启事务至回滚事务之间的操作全部失效,保持原有的数据库记录不变;提交事务之后不能再回滚事务。

用一个例子来说明问题,

这里创建了一个表,原始状态是这样的

  事务操作第1张

1.下面我们开启事务

事务操作第2张

2.接着做的是,减少durant的账户余额;

事务操作第3张

通过上图,durant的账户余额显示减少了1000,但实际上,由于我们开启了事务,数据表真实的数据并没有同步更新,为了验证这个论断,我们重新打开一个数据库客户端,查询表中的数据;

事务操作第4张事务操作第5张

如上右图,还是保持最初的值。显然数据库的事务安全机制起了作用,当我们开启事务(手动)之后,其后一系列操作并没有直接写入数据库,而是存入了事务日志。

3.增加harden的账户余额

事务操作第6张

如上图,可以看出harden的账户显示增加了1000

事务操作第7张事务操作第8张

但是由于事务的存在,我们再次查看数据库的真实数据,如上右图,还是保持了最初的值。

4.提交事务

事务操作第9张事务操作第10张

当我们提交事务之后,数据库的真实记录更新,两个客户端的数据一致。

免责声明:文章转载自《事务操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nodejs关于sequelize 存储时间问题C++ limits头文件的用法(numeric_limits)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL Server2000中死锁经验总结

将死锁减至最少 虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务: 回滚,而回滚会取消事务执行的所有工作。 由于死锁时回滚而由应用程序重新提交。 下列方法有助于最大限度地降低死锁: 按同一顺序访问对象。 避免事务中的用户交互。 保持事务简短并在一个批处理中。 使用低隔离级别。...

查看Mysql正在执行的事务、锁、等待

一、关于锁的三张表(MEMORY引擎) ## 当前运行的所有事务 mysql> select * from information_schema.innodb_trxG; *************************** 1. row *************************** trx_id: 613963...

监控和管理Oracle UNDO表空间的使用

监控和管理Oracle UNDO表空间的使用                 对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定);UNDO表空间是用于存储DML操作的前镜像数据,它是实例恢复,数据回滚,一致性查询功能的重要组件;我...

DBHelper

/// <summary> ///SqlHelper类是专门提供给用于高性能、可升级的sql数据操作 /// </summary> public static classDBHelper { //数据库连接字符串。 //连接字符串在界面层的webConfig的配置文件...

提升SQLite数据插入效率低、速度慢的方法

前言 SQLite数据库由于其简单、灵活、轻量、开源,已经被越来越多的被应用到中小型应用中。甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作。因此我最近编写有关遥感数据处理的程序的时候,也将SQLite引入进来,以提高数据的结构化程度,并且提高大数据的处理能力(SQLite最高支持2PB大小的数据)。但是最开始,我发现,直接使用SQL语句...

Mysql的悲观锁 你来聊一聊?

什么是悲观锁 在关系数据库管理系统中,悲观并发控制(悲观锁,PCC)是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修改数据。如果一个事务执行的操作的每行数据应用了锁,那只有当这个事务锁释放,其他事务才能够执行与该锁冲突的操作 悲观并发控制主要应用于数据争用激烈的环境,以及发生并发冲突时使用锁保护数据的成本要低于回滚事务的成本环境。 数据库中...