mysql事务管理的用法
这篇文章主要讲解了mysql事务管理的用法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
什么是事务管理:
事务管理操作:开启事务管理:开启之后,下面的sql语句并不会马上执行并把结果写到表中,而是会写到事务日志中。start transaction;回退操作:回退会清掉开始事务管理之后写到事务日志中的内容,即恢复到开启事务管理之前。语法:rollback;注意:回退操作只是回退"写"的内容,对于普通的读表select语句不能回退。事务提交:将sql语句的结果写到数据表中。语法:commit:
实验表:
create table bankaccount(id int primary key auto_increment,name varchar(15),money int);insert into bankaccount(name,money) values("Jobs",2000);insert into bankaccount(name,money) values("Bill",3000);
补充:当 commit 或 rollback 语句执行后,事务会自动关闭(将来的更改会隐含提交)。锁机制:在事务操作一个表时,如果使用索引来取值,那么会锁定到对应行;如果没有使用索引来取值,那么会锁定整个表。锁定之后其他连接无法操作指定行或表。回滚点:回滚点可以指定rollback回退的位置【比如现在打了100条命令,发现第81打错了,如果回滚到打了81命令之前一点而不是回滚到开启事务之前就可以节省下很多时间。】语法:创建回滚点:savepoint 回滚点名;回滚到回滚点:rollback to 回滚点名;补充:回滚点在事务管理关闭(rollback或commit之后)之后失效,不要在事务之外使用回滚点。
默认的事务管理:默认情况下,mysql的事务管理是关闭(自动事务)的,语句的结果会马上写到数据表中。可以通过show variable like 'autocommit';来查看是否开启自动事务,值为1为自动事务已开启,为0则为关闭。关闭自动事务:set autocommit =0;【关闭后需要commit来执行每一条语句,相当于开始了事务管理】不过注意的是set autocommit针对的是会话变量,所以这个设置只在此次会话连接中生效。
看完上述内容,是不是对mysql事务管理的用法有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。