SQLiteTransactions(事务)

SQLiteTransactions(事务) 首页 / SQLite入门教程 / SQLiteTransactions(事务)

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

事务性质

事务具有以下四个标准属性,通常由首字母缩写ACID指代。

  • 原子性- 确保工作单元内的所有操作均已成功完成,否则,事务将在失败时中止,并且先前的操作将回滚到以前的状态。

  • 一致性- 确保成功提交事务后数据库正确更改状态。

  • 隔离性- 使事务能够独立运行并且彼此透明。

  • 耐久性- 确保在系统故障的情况下持久化已提交事务的输出或效果。

事务控制

以下是用于控制事务的以下命令:

链接:https://www.learnfk.comhttps://www.learnfk.com/sqlite/sqlite-transactions.html

来源:LearnFk无涯教程网

  • BEGIN TRANSACTION   - 开始事务。

  • COMMIT                             - 提交事务。

  • ROLLBACK                         - 回滚事务。

BEGIN TRANSACTION命令

可以使用BEGIN TRANSACTION或简单地使用BEGIN命令来启动事务,这样的事务通常会持续到遇到下一个COMMIT或ROLLBACK命令为止。但是,如果数据库关闭或发生错误,则事务也将回滚。以下是启动事务的简单语法。

BEGIN;
or 
BEGIN TRANSACTION;

COMMIT命令

COMMIT命令是事务性命令,用于提交事务将数据保存到数据库。

以下是COMMIT命令的语法。

COMMIT;
or
END TRANSACTION;

ROLLBACK命令

ROLLBACK命令是用于撤消事务,撤销已改动的数据。

以下是ROLLBACK命令的语法。

ROLLBACK;

考虑具有以下记录的COMPANY表。

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           Learnfk       24          Houston     10000.0

现在,让无涯教程开始一个事务并从AGE= 25的表中删除记录。然后,使用ROLLBACK命令撤消所有更改。

sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> ROLLBACK;

现在,如果您检查COMPANY表,它仍然具有以下记录-

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           Learnfk       24          Houston     10000.0

让无涯教程开始另一个事务,并从AGE= 25的表中删除记录,最后无涯教程使用COMMIT命令来提交所有更改。

sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> COMMIT;

如果现在检查COMPANY表仍然具有以下记录-

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
3           Teddy       23          Norway      20000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           Learnfk       24          Houston     10000.0

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

教程推荐

AI大模型之美 -〔徐文浩〕

Web漏洞挖掘实战 -〔王昊天〕

大数据经典论文解读 -〔徐文浩〕

React Hooks 核心原理与实战 -〔王沛〕

技术管理案例课 -〔许健〕

移动端自动化测试实战 -〔思寒〕

研发效率破局之道 -〔葛俊〕

深入拆解Tomcat & Jetty -〔李号双〕

MySQL实战45讲 -〔林晓斌〕

好记忆不如烂笔头。留下您的足迹吧 :)