什么是数据库事务控制语句?
MYSQL命令行默认设置下,事务是自动提交的,即执行完SQL语句后会立即执行COMMIT操作。
因此,要显式启动事务,必须使用命令BEGIN和STARTTRANSACTION,或者执行命令SETAUTOCOMMIT=0来禁用当前会话的自动提交。
MYSQL事务控制语句
1)STARTTRANSACTION|BEGIN
显式启动一个事务。在存储过程中,MYSQL数据库的分析器会自动将BEGIN识别为BEGIN...END,所以只能使用STARTTRANSACTION语句来启动存储过程中的事务编辑程序。
2)COMMIT
要使用此语句的最简单形式,只需发出 COMMIT。 COMMIT 提交事务并使对数据库所做的所有修改永久化。 COMMIT 和 COMMITWORK 语句基本相同,用于提交事务。
不同的是COMMITWORK是用来控制事务结束后的行为是CHAIN还是RELEASE。如果是CHAIN模式,那么交易就变成了链上交易。用户可以通过参数completion_type来控制。默认参数为0,表示不进行任何操作。
在此设置下,COMMIT 和 COMMITWORK 完全等效。当参数值为1时,COMMITWORK相当于COMMITANDCHAIN,这意味着将立即自动启动具有相同隔离级别的事务。
当参数值为1时,COMMITWORK相当于COMMITANDRELEASE。交易时提交后,与服务器的连接将自动断开。
3) ROLLBACK
回滚将结束用户的事务并撤消所有正在进行的未提交的修改。
4)SAVEPOINTidentifier
5)RELEASESAVEPOINTidentifier 删除事务的保存点。当这条语句在没有保存点的情况下执行时,将会抛出异常。 6)ROLLBACKto[SAVEPOINT]标识符 此语句与SAVEPOINT命令一起使用。您可以将事务回滚到某个点,而无需回滚该点之前的任何工作。 注意:虽然有ROLLBACK,但它并没有真正结束一个事务,所以即使执行了ROLLBACKTOSAVEPOINT,之后也需要显式运行COMMIT或ROLLBACK命令。 7)SETTRANSACTION 此语句用于设置事务的隔离级别。 InnoDB存储引擎提供的事务隔离级别有READUNCOMMITTED、READCOMMITTED、REPEATABLEREAD和SERIALIZABLE。 我在这里分享一下什么是数据库事务控制语句。希望以上内容能够对大家有所帮助,能够学到更多的知识。如果您觉得文章不错,可以分享出去,让更多的人看到。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 什么是数据库事务控制语句?