美文网首页
MySQL事务处理二

MySQL事务处理二

作者: 吱吱_呀 | 来源:发表于2022-03-18 09:05 被阅读0次

    SELECT @@AUTOCOMMIT;    查看MySQL是否自动提交事务  0表示手动提交事务    1表示自动提交事务

    SET AUTOCOMMIT = 0;    设置事务提交方式

    SELECT  @@TRANCTION_ISOLATION;查询事务的隔离级别

    SELECT  @@GLOBAL.TRANCTION_ISOLATION;查询全局事务的隔离级别

    默认为可重复读

    修改事务隔离级别语句

    SET  [ SESSION | GLOBAL ]   TRANSACTION ISOLATION  LEVEL 隔离级别;

    隔离级别{    REPEATABLE READ 

                    |   READ COMMITTED

                    |   READ UNCOMMITTED

                    |   SERIALIZABLE }

    MySQL数据库的事务隔离级别分为会话和全局两个范围

    如果选择global,意思是此语句将应用于之后的所有session,而当前已经存在的session不受影响。

    如果选择session,意思是此语句将应用于当前session内之后的所有事务。

    如果什么都不写,意思是此语句将应用于当前session内的下一个还未开始的事务。


    控制事务处理

    MySQL使用下面语句标识事务的开始

    START  TRANSACTION;

    使用ROLLBACK

    ROLLBACK只能在一个事务处理内使用(在执行一条START TRANSACTION命令之后)

    事务处理用来管理INSERT、UPDATE和DELETE语句。你不能回退SELECT语句。(这样做也没有什么意义。)你不能回退CREATE或DROP操作。事务处理块中可以使用这两条语句,但如果你执行回退,它们不会被撤销。

    使用COMMIT

    一般的MySQL语句都是直接针对数据库表执行和编写的。这就是所谓的隐含提交,即提交操作是自动进行的。

    但是在事务处理块中,提交不会隐含地进行。为进行明确的提交,使用commit语句。

    这个例子中,从系统中完全删除订单20011.因为涉及更新两个数据库表,所以使用事务处理块来保证订单不被部分删除。最后的Commit语句仅在不出错时写出更改。如果第一条delete起作用,但第二条失败,则delete不会提交(实际上,它是被自动撤销的)

    使用保留点

    复杂的事务可能需要部分提交或回退,就需要设置保留点。这样,如果需要回退,可以回退到某个保留点SAVEPOINT

    Savapoint  标识名;

    每个保留点逗趣唯一标识的名字,以便在退回时知道回退到何处

    Rollback to 标识名;

    保留点在事务处理完成(执行一条rollback或commit)后自动释放。也可以用

    RELEASE SAVEPOINT  标识名; 明确释放保留点

    相关文章

      网友评论

          本文标题:MySQL事务处理二

          本文链接:https://www.haomeiwen.com/subject/yyhydrtx.html