事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
事务具有以下四个标准属性,通常由首字母缩写ACID指代。
原子性 - 确保工作单元内的所有操作均已成功完成,否则,事务将在失败时中止,并且先前的操作将回滚到以前的状态。
一致性 - 确保成功提交事务后数据库正确更改状态。
隔离性 - 使事务能够独立运行并且彼此透明。
耐久性 - 确保在系统故障的情况下持久化已提交事务的输出或效果。
以下是用于控制事务的以下命令:
BEGIN TRANSACTION - 开始事务。
COMMIT - 提交事务。
ROLLBACK - 回滚事务。
可以使用BEGIN TRANSACTION或简单地使用BEGIN命令来启动事务,这样的事务通常会持续到遇到下一个COMMIT或ROLLBACK命令为止。但是,如果数据库关闭或发生错误,则事务也将回滚。以下是启动事务的简单语法。
BEGIN; or BEGIN TRANSACTION;
COMMIT命令是事务性命令,用于提交事务将数据保存到数据库。
以下是COMMIT命令的语法。
COMMIT; or END TRANSACTION;
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表,它仍然具有以下记录-
链接:https://www.learnfk.comhttps://www.learnfk.com/sqlite/sqlite-transactions.html
来源:LearnFk无涯教程网
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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)