MySQL-事务小记

版权声明:有疑问可加微信15216874307 https://blog.csdn.net/Doudou_Mylove/article/details/82588812

数据库事务,简单地说事务就是指逻辑上的一组SQL操作;
组成这组操作的各个SQL语句,要么都执行,要不都不执行。----这就是事务的原子性。


一、事务的四大特性(ACID)
    1、原子性
        事务是一个不可分割的单位,食物中的所有SQL等操作要么都发生,要么都不发生。
    2、一致性
        事务发生前和发生后,数据的完整性必须保持一致。
    3、隔离性
        当并发访问数据库时,一个正在执行的事务在执行完毕前,对于其它的会话时不可见的,多个并发事务之间的数据时相互隔离的。(--single-transaction就是这个意思)
    4、持久性
        一个事务一旦被提交,它对数据库中的数据改变就是永久性的。如果出了错误,事务也不允许撤销,只能通过"补偿性事务".
        
        
二、事务的开启
    数据库默认事务是自动提交的,也就是发一条sql它就执行一条。如果想多条sql放在一个事务中执行,则需要使用事务进行处理。当我们开启一个事务,并且没有提交,MySQL会自动回滚事务。或者我们使用rollback命令手动回滚事务。
        start tranncation      开启事务
        rollback                    回滚事务
        commit                     提交事务
        
        set autocommit=0    禁止自动提交
        set autocommit=1    开启自动提交
        
        
        
    查看事务状态(默认是ON)
    mysql> show variables like '%autocommit%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit    | ON    |
    +---------------+-------+
    
    测试修改为OFF
    [root@node1 mysql]# mysql -e "set global autocommit = 'OFF'"
    [root@node1 mysql]# mysql -e "use db1;insert into t1(name,comment) values('Jhon','教师')"
    [root@node1 mysql]# mysql -e "use db1;select * from t1;"
    +-------+-------+---------+
    | id    | name  | comment |
    +-------+-------+---------+
    | 10000 | Tommy | 班长    |
    | 10002 | Bob   | 渔夫    |
    +-------+-------+---------+
    [root@node1 mysql]# mysql -e "set global autocommit = 'ON'"
    [root@node1 mysql]# mysql -e "use db1;select * from t1;"
    +-------+-------+---------+
    | id    | name  | comment |
    +-------+-------+---------+
    | 10000 | Tommy | 班长    |
    | 10002 | Bob   | 渔夫    |
    +-------+-------+---------+
    [root@node1 mysql]# mysql -e "use db1;insert into t1(name,comment) values('Jhon','教师')"
    [root@node1 mysql]# mysql -e "use db1;select * from t1;"
    +-------+-------+---------+
    | id    | name  | comment |
    +-------+-------+---------+
    | 10000 | Tommy | 班长    |
    | 10002 | Bob   | 渔夫    |
    | 10004 | Jhon  | 教师    |
    +-------+-------+---------+
    提示:结果说明关闭事务系统就不会自动提交。

猜你喜欢

转载自blog.csdn.net/Doudou_Mylove/article/details/82588812
今日推荐