数据库事务控制语句是怎样的
创始人
2024-12-23 22:00:55
0次

在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)SAVEPOINTidentifiter

  SAVEPOINT允许用户在事务中创建一个保存点,一个事务可以有很多个保存点。

  5)RELEASESAVEPOINTidentifier

  删除一个事务的保存点,当没有一个保存点执行这语句时,会抛出一个异常。

  6)ROLLBACKto[SAVEPOINT]identifier

  这个语句与SAVEPOINT命令一起使用。可以把事务回滚到标记点,而不回滚到此标记点之前的任何工作。

  注意:虽然有ROLLBACK,但是它并没有真正的结束一个事务,因此即使执行了ROLLBACKTOSAVEPOINT,之后也需要显示的运行COMMIT或ROLLBACK命令。

  7)SETTRANSACTION

  这个语句用来设置事务的隔离级别。InnoDB存储引擎提供的事务隔离级别有READUNCOMMITTED、READCOMMITTED、REPEATABLEREAD和SERIALIZABLE。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...