博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Sqlite]-->嵌入式数据库事务理解以及实例操作
阅读量:6256 次
发布时间:2019-06-22

本文共 1809 字,大约阅读时间需要 6 分钟。

引子:

    1。 

    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

转载地址:http://hwnsa.baihongyu.com/

你可能感兴趣的文章
一半人将因人工智能失业?麻省理工科学家表示太可笑!
查看>>
‘生逢其时’的文化IP该如何借力科技?_创成汇
查看>>
java B2B2C Springcloud电子商城系统--------负载均衡(Load Balance)
查看>>
Java springcloud B2B2C o2o多用户商城 springcloud架构 (一)服务的注册与发现(Eureka)...
查看>>
手把手教你写电商后台管理系统(七) - 用户模块
查看>>
比特币、比特币现金的下一步是什么?Craig Wright博士说,可替代现金
查看>>
字节码执行引擎-类加载及执行子系统的案例与实战
查看>>
微软整合实验(三):AD域环境的搭建,基于Server 2008 R2
查看>>
Linux 用户管理
查看>>
linux 终端颜色代码
查看>>
oracle的drop命令
查看>>
用R语言和java实现随机生成手机号码
查看>>
Oracle DG 之-- Remove DG Broker
查看>>
5.2 let it snow--game programming gems 5 笔记
查看>>
解决error: Failed dependencies:libodbc.so.2()的错误
查看>>
SCOM 2012系列⑤邮件通知上
查看>>
ionic3 引入jquery
查看>>
Unable to connect to the MKS: Internal error after cloning
查看>>
How to check server memory model for extend the physical memory
查看>>
Running nested VM on vSphere 5
查看>>