zoukankan      html  css  js  c++  java
  • MySQL管理实务处理

      事物处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么全不执行。

    1. 事务:指一组sql语句
    2. 回退:指撤销指定的sql语句过程
    3. 提交:将未存储的sql语句结果写入数据库表
    4. 保留点:指事务处理过程中设置的临时占位符,可以对他发布回退,与回退到整个事务不同

    开始事务

    mysql> start transaction

    回退事务

    mysql> rollback
    1. 只能在一个事务内使用,即start transaction
    2. 事务处理用来管理insert,update,delete语句,不能回退select语句,不能回退create和drop,事务处理块中可以使用着两条语句,如果回退执行,他们不会被撤消
    mysql> select * from stu_info;
    +--------+---------+-----+-------+-------+
    | num    | name    | age | grade | socre |
    +--------+---------+-----+-------+-------+
    | 000001 | gushi   |  23 | 1006  |    90 |
    | 000002 | hualian |  21 | 1005  |   100 |
    | 000004 | gushi   |  16 | 1006  |    95 |
    | 000009 | abc     |   8 | 2004  |     0 |
    +--------+---------+-----+-------+-------+
    4 rows in set (0.00 sec)
    
    mysql> start transaction;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> delete from stu_info;
    Query OK, 4 rows affected (0.00 sec)
    
    mysql> select * from stu_info;
    Empty set (0.00 sec)
    
    mysql> rollback;
    Query OK, 0 rows affected (0.44 sec)
    
    mysql> select * from stu_info;
    +--------+---------+-----+-------+-------+
    | num    | name    | age | grade | socre |
    +--------+---------+-----+-------+-------+
    | 000001 | gushi   |  23 | 1006  |    90 |
    | 000002 | hualian |  21 | 1005  |   100 |
    | 000004 | gushi   |  16 | 1006  |    95 |
    | 000009 | abc     |   8 | 2004  |     0 |
    +--------+---------+-----+-------+-------+
    4 rows in set (0.00 sec)

    使用COMMIT

      MySQL语句一般都是针对数据库表执行和编写的,这是所谓的隐含提交,即提交操作是自动进行的。但是在事务处理块中提交不会自动进行,为进行明确的提交,用commit

    mysql> start transaction;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> delete from stu_info where age=18;
    Query OK, 5 rows affected (0.34 sec)
    
    mysql> delete from stu_info where age=20;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> commit;
    Query OK, 0 rows affected (0.44 sec)

      最后commit语句仅在不出错时写出更改,如果第一条delete起作用,第二条delete失败,则delete不会提交,实际上他是自动被撤销的

      当COMMIT或rollback语句执行后,事务会自动关闭

    保留点

      COMMIT或rollback撤销的是整个事务,有时需要部分提交或回退,在事务块中放适当的占位符,如果需要回退,就会退到某个占位符。

    mysql> savepoint s1;

      每个保留点名字唯一

    mysql> rollback to s1;
    1. 保留点越多越好
    2. 保留点在事务处理完成(执行一条rollback或COMMIT)后自动释放,也可以用release savepoint 明确释放保留点

    更改默认的提交行为

    mysql> set autocommit=0;

      执行sql语句时,该语句都是针对表执行的,而且都是立即生效,autocommit决定是否自动提交,autocommit(0)假不自动提交,直到autocommit为真才自动提交,autocommit针对每个链接而不是服务器

      

  • 相关阅读:
    xp下双开3389源码
    批处理加密解密原理
    Durango框架开源
    细说PHP5.3.4变量的引用赋值
    svnversion
    sqlite 的使用
    message日志_默认是一周一个日志,保存4周
    Smartmontool 使用
    NETRA之数据库处理
    mysql 日志转
  • 原文地址:https://www.cnblogs.com/tianzeng/p/10361476.html
Copyright © 2011-2022 走看看