欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > MySQL基础-事务

MySQL基础-事务

2025/2/19 7:54:34 来源:https://blog.csdn.net/2402_88116813/article/details/144358387  浏览:    关键词:MySQL基础-事务

事务: 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败

事务操作

查看/设置事务提交方式

        SELECT @@autocommit;

        SET @@autocommit = 0;

提交事务

        COMMIT;

回滚事务

        ROLLBACK;

开启事务

        START TRANSACTIONBEGIN;

方法一 : 

select account.money from account where name = '张三';update account set money = money - 1000 where name = '张三';
异常报错...
update account set money = money + 1000 where name = '李四';
-- 以上三行代码应该一起执行, 如果在中间中断, 可能会导致涨三的钱少了, 但李四的钱没多的情况select @@autocommit; -- 默认为1 即自动提交事务
set @@autocommit = 0; -- 改为手动提交 运行代码后必须运行 COMMIT 才能提交事务
commit ; -- 提交事务rollback ; -- 回滚事务
-- 执行代码时如果遇到异常, 就去执行回滚事务, 就能使代码不进行

方法二 :

START TRANSACTION ;-- 开始事务 开始后只有手动提交事务才能成功运行-- 转账操作(张三给李四转账1000)
select account.money from account where name = '张三';update account set money = money - 1000 where name = '张三';
异常报错...
update account set money = money + 1000 where name = '李四';commit ; -- 提交事务, 如果报错执行此代码rollback ; -- 回滚事务, 如果报错执行此代码

事务四大特性(ACID)

原子性(Atomicity) : 事务是不可分割的最小操作单元, 要么全部成功, 要么全部失败.

一致性(Consistency) : 事务完成时, 必须使所有的数据都保持一致状态.

隔离性(Isolation) : 数据库系统提供的隔离机制, 保证事务在不受外部并发操作影响的独立环境下运行.

 持久性(Durability) : 事务一旦提交或回滚, 它对数据库中的数据的改变就是永久的.

并发事务问题 

 事务隔离级别

 查看事务隔离级别

SELECT @@TRANSACTION_ISOLATION;

设置事务隔离级别

SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED |  READ COMMITTED | SERIALIZABLE}

如果set session 是设置当前客户端窗口的事务隔离级别

如果set global 是设置所有客户端的会话窗口的事务隔离级别

注意: 事务隔离级别越高, 数据越安全, 但是性能越低.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词