引子:

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]-->嵌入式数据库事务理解以及实例操作的更多相关文章

  1. [Sqlite] 移动嵌入式数据库Sqlite日报SQL操作语句汇总

    ,EXPLAIN分析 没有建立索引之前.分析都是表扫描: sqlite> EXPLAIN SELECT *  FROM COMPANY  WHERE Salary < 20000; add ...

  2. 针对Redis队列的理解,实例操作(转)

    原文:本文出自 “峰云,就她了.”  http://rfyiamcool.blog.51cto.com/1030776/1131271 为什么要使用消息队列 用我的话来说, 队列特点是先进先出,在任务 ...

  3. 数据库事务与MySQL事务总结

    事务特点:ACID 从业务角度出发,对数据库的一组操作要求保持4个特征: Atomicity(原子性):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败 ...

  4. 在Laravel中使用数据库事务以及捕获事务失败后的异常

    Description 在Laravel中要想在数据库事务中运行一组操作,则可以在 DB facade 中使用 transaction 方法.如果在事务的闭包内抛出异常,事务将会被自动还原.如果闭包运 ...

  5. 数据持久化之嵌入式数据库 SQLite(三)

    阿里P7Android高级架构进阶视频免费学习请点击:https://space.bilibili.com/474380680 SQLite 是 D. Richard Hipp 用 C 语言编写的开源 ...

  6. sqlite嵌入式数据库简介及特性

    p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1) } p.p2 { margin: ...

  7. sqlite嵌入式数据库C语言基本操作(1)

    sqlite嵌入式数据库C语言基本操作(1) :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0, ...

  8. SQLite/嵌入式数据库

    SQLite/嵌入式数据库 的项目要么不使用数据库(一两个文配置文件就可以搞定),要么就会有很多的数据,用到 postgresql,操练sqlite的还没有.现在我有个自己的小测试例子,写个数据库对比 ...

  9. 理解MySQL数据库事务

    1. 什么是事务处理? 事务处理是一种机制,它是用来管理必须成批执行的mysql操作.来保证数据库不完整的操作结果. 2. 为什么要使用事务处理? 在使用mysql操作数据的过程中,如果只是简单的中小 ...

随机推荐

  1. 监视网络接口TCP状态信息数据有多种工具或命令。下面举例一些:

    nstat命令 nstat kernel ======= ss -s == netstat -i netstat -s ip -s link sar -n DEV 1

  2. APK包与类更改分析

    360APK包与类更改分析 1 题目要求 这是360的全球招募无线攻防中的第二题,题目要求如下: 1)请以重打包的形式将qihootest2.apk的程序包名改为 "com.qihoo.cr ...

  3. MFC点击控件拖动窗口

    void CMouseClickDlg::OnLButtonDown(UINT nFlags, CPoint point) { CDialogEx::OnLButtonDown(nFlags, poi ...

  4. mac 安装 python 配置||虚拟环境

    前篇:http://www.cnblogs.com/ostrich-sunshine/p/8747791.html 介绍了 Mac 下 python 的一些相关知识. 这篇介绍 python3 的安装 ...

  5. Linq To Entity学习实践

    public class CustomDataContext<TEntity> : System.Data.Linq.DataContext where TEntity : class,n ...

  6. VIM使用技巧2

    假如有以下程序片段: var foo = 1 var bar = 'a' var foobar = foo + bar 如果我们想在每行行尾加上分号, (1)使用$移动光标到行尾, (2)执行a;&l ...

  7. Scrapy笔记:持久化,Feed exports的使用

    首先要明确的是,其实所有的FeedExporter都是类,里面封装了一般进行io操作的方法.因此,要怎么输出呢?其实从技术实现来说,在生成item的每一步调用其进行储存都是可以的,只不过为了更加符合s ...

  8. C#Json转Xml格式数据的方法

    第一种方法 string Xml = "在这里写Json字符串"; XmlDictionaryReader reader = JsonReaderWriterFactory.Cre ...

  9. LeetCode OJ-- Binary Tree Maximum Path Sum ***

    https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/ 给一棵二叉树,路径可以从任一点起,到任一点结束,但是可以连成一个路径的.求 ...

  10. webservice原理及基于cxf开发的基本流程

    一.SOA和webservice SOA(service-Oriented Architecture)是面向服务的架构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的 ...