[Sqlite]-->嵌入式数据库事务理解以及实例操作
引子:
1。 Sqlite在Windows、Linux 和 Mac OS X 上的安装过程
2,嵌入式数据库的安装、建库、建表、更新表结构以及数据导入导出等等具体过程记录
SQLite 事务(Transaction)
事务(Transaction)是一个对数据库运行工作单元。
事务(Transaction)是以逻辑顺序完毕的工作单位或序列,能够是由用户手动操作完毕,也能够是由某种数据库程序自己主动完毕。
事务(Transaction)是指一个或多个更改数据库的扩展。比如,假设您正在创建一个记录或者更新一个记录或者从表中删除一个记录。那么您正在该表上运行事务。重要的是要控制事务以确保数据的完整性和处理数据库错误。
实际上,您能够把很多的 SQLite 查询联合成一组,把全部这些放在一起作为事务的一部分进行运行。
1,事务的属性
事务(Transaction)具有下面四个标准属性,通常依据首字母缩写为 ACID:
· 原子性(Atomicity):确保工作单位内的全部操作都成功完毕,否则,事务会在出现问题时终止,之前的操作也会回滚到曾经的状态。
· 一致性(Consistency):确保数据库在成功提交的事务上正确地改变状态。
· 隔离性(Isolation):使事务操作相互独立和透明。
· 持久性(Durability):确保已提交事务的结果或效果在系统发生问题的情况下仍然存在。
2。事务控制
使用下面的命令来控制事务:
· BEGIN TRANSACTION:開始事务处理。
· COMMIT:保存更改。或者能够使用 END TRANSACTION 命令。
· ROLLBACK:回滚所做的更改。
事务控制命令仅仅与 DML 命令 INSERT、UPDATE 和 DELETE 一起使用。他们不能在创建表或删除表时使用,由于这些操作在数据库中是自己主动提交的。
3。BEGIN TRANSACTION 命令
事务(Transaction)能够使用 BEGIN TRANSACTION 命令或简单的 BEGIN 命令来启动。此类事务一般会持续运行下去,直到遇到下一个 COMMIT 或 ROLLBACK 命令。只是在数据库关闭或错误发生时,事务处理也会回滚。下面是启动一个事务的简单语法:
BEGIN;
or
BEGIN TRANSACTION;
4。COMMIT 命令
COMMIT 命令是用于把事务调用的更改保存到数据库中的事务命令。
COMMIT 命令把自上次 COMMIT 或 ROLLBACK 命令以来的全部事务保存到数据库。
COMMIT 命令的语法例如以下:
COMMIT;
or
END TRANSACTION;
5,ROLLBACK 命令
ROLLBACK 命令是用于撤消尚未保存到数据库的事务的事务命令。
ROLLBACK 命令仅仅能用于撤销自上次发出 COMMIT 或 ROLLBACK 命令以来的事务。
ROLLBACK 命令的语法例如以下:
ROLLBACK;
6,实例操作
[root@localhost sqlite-autoconf-3080403]# sqlite3 tim.db
SQLite version 3.8.4.3 2014-04-03 16:53:12
Enter ".help" for usage hints.
sqlite> CREATE TABLE COMPANY(ID INT NOT NULL, NAME VARCHAR(20),AGE INT,ADDRESS VARCHAR(20),SALARY DECIMAL(7,2));
如今。让我们開始一个事务。并从表中删除 age = 25 的记录,最后,我们使用 ROLLBACK 命令撤消全部的更改,先开启事务,然后删除AGE为25的记录。查询COMPANY表。会看到没有这条记录,例如以下图所看到的:

再ROLLBACK,再去查询COMPANY表,会看到AGE为25的记录被恢复。

如今开启一个事务。删除AGE为25的记录。再运行COMMIT提交所以的更改,那么就不会再看到已经删除的记录。例如以下所看到的:

再ROLLBACK,再去查询COMPANY表,会看到AGE为25的记录被恢复。

如今开启一个事务。删除AGE为25的记录。再运行COMMIT提交所以的更改。那么就不会再看到已经删除的记录。例如以下所看到的:
參考文章地址:http://www.w3cschool.cc/sqlite/sqlite-transaction.html
[Sqlite]-->嵌入式数据库事务理解以及实例操作的更多相关文章
- [Sqlite] 移动嵌入式数据库Sqlite日报SQL操作语句汇总
,EXPLAIN分析 没有建立索引之前.分析都是表扫描: sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary < 20000; add ...
- 针对Redis队列的理解,实例操作(转)
原文:本文出自 “峰云,就她了.” http://rfyiamcool.blog.51cto.com/1030776/1131271 为什么要使用消息队列 用我的话来说, 队列特点是先进先出,在任务 ...
- 数据库事务与MySQL事务总结
事务特点:ACID 从业务角度出发,对数据库的一组操作要求保持4个特征: Atomicity(原子性):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败 ...
- 在Laravel中使用数据库事务以及捕获事务失败后的异常
Description 在Laravel中要想在数据库事务中运行一组操作,则可以在 DB facade 中使用 transaction 方法.如果在事务的闭包内抛出异常,事务将会被自动还原.如果闭包运 ...
- 数据持久化之嵌入式数据库 SQLite(三)
阿里P7Android高级架构进阶视频免费学习请点击:https://space.bilibili.com/474380680 SQLite 是 D. Richard Hipp 用 C 语言编写的开源 ...
- sqlite嵌入式数据库简介及特性
p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1) } p.p2 { margin: ...
- sqlite嵌入式数据库C语言基本操作(1)
sqlite嵌入式数据库C语言基本操作(1) :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0, ...
- SQLite/嵌入式数据库
SQLite/嵌入式数据库 的项目要么不使用数据库(一两个文配置文件就可以搞定),要么就会有很多的数据,用到 postgresql,操练sqlite的还没有.现在我有个自己的小测试例子,写个数据库对比 ...
- 理解MySQL数据库事务
1. 什么是事务处理? 事务处理是一种机制,它是用来管理必须成批执行的mysql操作.来保证数据库不完整的操作结果. 2. 为什么要使用事务处理? 在使用mysql操作数据的过程中,如果只是简单的中小 ...
随机推荐
- ZOJ 3780 Paint the Grid Again(隐式图拓扑排序)
Paint the Grid Again Time Limit: 2 Seconds Memory Limit: 65536 KB Leo has a grid with N × N cel ...
- HDU 5307 He is Flying ——FFT
卷积的妙用,显然我们可以求出所有符合条件的右端点的和,然后减去左端点的和. 就是最后的答案.然后做一次前缀和,然后就变成了统计差是一个定值的情况. 令$A(s[i])++$ $B(s[i])+=i$ ...
- KM算法【带权二分图完美匹配】
先orz litble--KM算法 为什么要用KM算法 因为有的题丧心病狂卡费用流 KM算法相比于费用流来说,具有更高的效率. 算法流程 我们给每一个点设一个期望值[可行顶标] 对于左边的点来说,就是 ...
- linux系统——etc下的profile文件
/etc/profile文件 /etc/profile是全局的,适用于所有的shell.在刚登录Linux时,首先启动 /etc/profile 文件. profile文件会告诉shell使用什么语言 ...
- Gate Of Babylon(bzoj 1272)
Description Input Output Sample Input Sample Output 12 HINT /* 容斥+lucas+乘法逆元 首先,看到有限制的只有15个,因此可以用容斥原 ...
- VIjosP1046观光旅游
背景 湖南师大附中成为百年名校之后,每年要接待大批的游客前来参观.学校认为大力发展旅游业,可以带来一笔可观的收入. 描述 学校里面有N个景点.两个景点之间可能直接有道路相连,用Dist[I,J]表示它 ...
- VS2008 没办法太强大了
原文发布时间为:2009-06-13 -- 来源于本人的百度文章 [由搬家工具导入] VS2008 太强大了。。。继续学习。。。。现在微软的某些强大功能也是针对 VS2008了。。。所以。。必须得装上 ...
- awk 使用方法
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- 了解Binder机制原理和底层实现
参考:http://www.2cto.com/kf/201606/515548.html 1.Binder通信机制介绍 这篇文章会先对比Binder机制与Linux的通信机制的差别,了解为什么Andr ...
- Dialog和软键盘在屏幕上的并存问题:
最近做添加门店,门店昵称自动根据文字变化去搜索后台数据,但是一搜索软键盘就关闭了,感觉用户体验不太好.一开始根本不知道啥问题,找了半天才发现是网络请求dialog加载导致软件盘隐藏的,后面直接把dia ...