zoukankan      html  css  js  c++  java
  • MariaDB TRANSACTION

    MariaDB TRANSACTION


    • Transaction—A block of SQL statements

    • Rollback—The process of undoing specified SQL statements

    • Commit—Writing unsaved SQL statements to the database tables

    • Savepoint—A temporary placeholder in a transaction set to which you can issue a rollback (as opposed to rolling back an entire transaction) 


    始终以START TRANSACTION为新起点遇到最后的ROLLBACK savepoint或COMMIT时自动关闭

    ROLLBACK

    (jlive)[crashcourse]>SELECT * FROM ordertotals; START TRANSACTION;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20005 |  158.86 |

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    |     20009 |   40.78 |

    |     20009 |   40.78 |

    +-----------+---------+

    6 rows in set (0.00 sec)

    (jlive)[crashcourse]>START TRANSACTION;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>DELETE FROM ordertotals;

    Query OK, 6 rows affected (0.00 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    Empty set (0.00 sec)


    (jlive)[crashcourse]>ROLLBACK;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20005 |  158.86 |

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    |     20009 |   40.78 |

    |     20009 |   40.78 |

    +-----------+---------+

    6 rows in set (0.00 sec)



    COMMIT

    START TRANSACTION;
    DELETE FROM orderitems WHERE order_num = 20010; 

    DELETE FROM orders WHERE order_num = 20010; 

    COMMIT; 


    SAVEPOINT

    (jlive)[crashcourse]>START TRANSACTION;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20005 |  158.86 |

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    |     20009 |   40.78 |

    |     20009 |   40.78 |

    +-----------+---------+

    6 rows in set (0.00 sec)


    (jlive)[crashcourse]>SAVEPOINT delete1;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>DELETE FROM ordertotals WHERE order_num = 20009;

    Query OK, 2 rows affected (0.00 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20005 |  158.86 |

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    +-----------+---------+

    4 rows in set (0.01 sec)


    (jlive)[crashcourse]>SAVEPOINT delete2;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>DELETE FROM ordertotals WHERE order_num = 20005;

    Query OK, 1 row affected (0.01 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    +-----------+---------+

    3 rows in set (0.00 sec)


    (jlive)[crashcourse]>SAVEPOINT delete3;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>DELETE FROM ordertotals WHERE order_num = 20008;

    Query OK, 1 row affected (0.00 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    +-----------+---------+

    2 rows in set (0.00 sec)


    (jlive)[crashcourse]>ROLLBACK TO delete3;

    Query OK, 0 rows affected (0.01 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    +-----------+---------+

    3 rows in set (0.00 sec)


    (jlive)[crashcourse]>ROLLBACK TO delete2;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20005 |  158.86 |

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    +-----------+---------+

    4 rows in set (0.00 sec)


    (jlive)[crashcourse]>ROLLBACK TO delete1;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>SELECT * FROM ordertotals;

    +-----------+---------+

    | order_num | total   |

    +-----------+---------+

    |     20005 |  158.86 |

    |     20006 |   58.30 |

    |     20007 | 1060.00 |

    |     20008 |  132.50 |

    |     20009 |   40.78 |

    |     20009 |   40.78 |

    +-----------+---------+

     

    6 rows in set (0.00 sec)



    修改默认的COMMIT方式


    (jlive)[crashcourse]>SHOW VARIABLES LIKE 'autocommit';

    +---------------+-------+

    | Variable_name | Value |

    +---------------+-------+

    | autocommit    | ON    |

    +---------------+-------+

    1 row in set (0.00 sec)


    (jlive)[crashcourse]>SET autocommit = 0;

    Query OK, 0 rows affected (0.00 sec)


    (jlive)[crashcourse]>SHOW VARIABLES LIKE 'autocommit';

    +---------------+-------+

    | Variable_name | Value |

    +---------------+-------+

    | autocommit    | OFF   |

    +---------------+-------+

     

    1 row in set (0.00 sec)

    • 相关阅读:
      chrome安装vue-devtools
      企业网络设计
      nginx的安装
      Typora 的使用
      如何学习dubbo?
      关于原码反码和补码以及byte&0xff
      HttpClient以及连接池的使用
      计算机网络读书笔记:tcp面试常见问题都在里面了
      接口类是否继承自Object?
      数据挖掘会议记录
    • 原文地址:https://www.cnblogs.com/lixuebin/p/10814164.html
    Copyright © 2011-2022 走看看