zoukankan      html  css  js  c++  java
  • 事务

    事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动执行,也可以由某种数据库程序自动执行。事务实际上就是对数据库的一个或多个更改。

    事务具有以下四个标准属性,常用缩略词ACID来表示:

    • 原子性:保证任务中的所有操作都执行完毕;否则,事务会在出现错误时终止,并回滚之前所有操作回到原始状态。
    • 一致性:如果事务执行成功,则数据库的状态得到了进行了正确的转变。
    • 隔离性:保证不同的事务相互独立、透明的执行。
    • 持久性:即使出现了系统故障,之前成功执行的事务的结果也会持久存在。

    事务控制的四个命令:

    COMMIT:提交更改;

      用于保存事务对数据库所做的更改,会将自上次COMMIT命令或者ROLLBACK命令执行以来的所有的事务都保存到数据库中。

    ROLLBACK:回滚更改;

      用于撤销尚未保存到数据库中的事务,它只能撤销自上次COMMIT命令或者ROLLBACK命令执行以来的所有的事务。

    SAVE:在事务内部创建一系列可以ROLLBACK的还原点;

      是事务中的一个状态点,使得我们可以将事务回滚至特定的点,而不是将整个事务都撤销。

    SET TRANSACTION:命名事务;

      可以用来初始化数据库事务,指定随后的事务的各种特征。

    eg:

    BEGIN TRANSACTION

    SAVE TRANSACTION S1

    SELECT * FROM table1 where `name` = 1

    SAVE TRANSACTION S2

    DELETE FROM table2 where `name` = 2

    ROLLBACK TRANSACTION S2

    COMMIT;

    以上sql,由于将数据库回滚至S2,因此DELECT不生效,只有SELECT生效。

    事务总结:

    事务在SQL应用中很广泛,特别是针对一些读写问题时,使用事务可以很好的规避意外,而且事务在出来误操作时也有很好地预防作用,能防止误删和误更新。

  • 相关阅读:
    树链剖分 (模板) 洛谷3384
    ST表 (模板) 洛谷3865
    IOI 2005 River (洛谷 3354)
    IOI 2005 River (洛谷 3354)
    poj1094 Sorting It All Out
    poj1094 Sorting It All Out
    spfa(模板)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    洛谷1850(NOIp2016) 换教室——期望dp
  • 原文地址:https://www.cnblogs.com/smallzhen/p/12194689.html
Copyright © 2011-2022 走看看