SQLite事务的属性有哪些
这篇文章主要讲解了“SQLite事务的属性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQLite事务的属性有哪些”吧!
说到事务一定会提到ACID,所谓事务的原子性,一致性,隔离性和持久性。对于一个数据库而言,通常通过并发控制和故障恢复手段来保证事务在正常和异常情况下的ACID特性。sqlite也不例外,虽然简单,依然有自己的并发控制和故障恢复机制。
使用下面的命令来控制事务:
事务控制命令只与 DML 命令 INSERT、UPDATE 和 DELETE 一起使用。他们不能在创建表或删除表时使用,因为这些操作在数据库中是自动提交的。
BEGIN TRANSACTION 命令事务(Transaction)可以使用 BEGIN TRANSACTION 命令或简单的 BEGIN 命令来启动。此类事务通常会持续执行下去,直到遇到下一个 COMMIT 或 ROLLBACK 命令。不过在数据库关闭或发生错误时,事务处理也会回滚。以下是启动一个事务的简单语法:
BEGIN;orBEGINTRANSACTION;COMMIT 命令
COMMIT 命令是用于把事务调用的更改保存到数据库中的事务命令。 COMMIT 命令把自上次 COMMIT 或 ROLLBACK 命令以来的所有事务保存到数据库。 COMMIT 命令的语法如下:
COMMIT;orENDTRANSACTION;ROLLBACK 命令
ROLLBACK 命令是用于撤消尚未保存到数据库的事务的事务命令。
ROLLBACK 命令只能用于撤销自上次发出 COMMIT 或 ROLLBACK 命令以来的事务。
ROLLBACK 命令的语法如下:
ROLLBACK;实例
假设 COMPANY 表有以下记录:
IDNAMEAGEADDRESSSALARY--------------------------------------------------1Paul32California20000.02Allen25Texas15000.03Teddy23Norway20000.04Mark25Rich-Mond65000.05David27Texas85000.06Kim22South-Hall45000.07James24Houston10000.0
现在,让我们开始一个事务,并从表中删除 age = 25 的记录,最后,我们使用 ROLLBACK 命令撤消所有的更改。
sqlite>BEGIN;sqlite>DELETEFROMCOMPANYWHEREAGE=25;sqlite>ROLLBACK;
检查 COMPANY 表,仍然有以下记录:
IDNAMEAGEADDRESSSALARY--------------------------------------------------1Paul32California20000.02Allen25Texas15000.03Teddy23Norway20000.04Mark25Rich-Mond65000.05David27Texas85000.06Kim22South-Hall45000.07James24Houston10000.0
现在,让我们开始另一个事务,从表中删除 age = 25 的记录,最后我们使用 COMMIT 命令提交所有的更改。
sqlite>BEGIN;sqlite>DELETEFROMCOMPANYWHEREAGE=25;sqlite>COMMIT;
检查 COMPANY 表,有以下记录:
IDNAMEAGEADDRESSSALARY--------------------------------------------------1Paul32California20000.03Teddy23Norway20000.05David27Texas85000.06Kim22South-Hall45000.07James24Houston10000.0
感谢各位的阅读,以上就是“SQLite事务的属性有哪些”的内容了,经过本文的学习后,相信大家对SQLite事务的属性有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。