mysql中的事务

Posted 敲代码的卡卡罗特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的事务相关的知识,希望对你有一定的参考价值。

我们在操作mysql的时候。默认执行一条语句是mysql自动帮我们前面加上开始事务,更新数据,提交事务的。

一定要是支持事务的存储引擎 如InnoDB 

看你的mysql现在已提供什么存储引擎:
mysql> show engines;

看你的mysql当前默认的存储引擎:
mysql> show variables like %storage_engine%;

你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):
mysql> show create table 表名;

如何查看Mysql服务器上的版本
select version();

 

show engines;

我们可以用这个命令查看一下:

mysql> show variables like autocommit;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.04 sec)

从查询结果中,我们发现Value的值是ON,表示autocommit开启。我们可以通过以下SQL语句改变这个模式

mysql> set autocommit = 0;

值0和OFF都是一样的,当然,1也就表示ON。通过以上设置autocommit=0,则用户将一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务。

 

我们想执行两条语句需要在一个事务中。我们可以这样执行。(autocommit 不用设置为0也可以。)

BEGIN;
  Insert into emp select * from emp2 where empno=1;
  UPDATE emp set salary=500 where empno=1;
COMMIT;

 

以上是关于mysql中的事务的主要内容,如果未能解决你的问题,请参考以下文章

基础-事务

片段事务分离和附加后ListView不工作?

BottomNavigationView 滞后于片段事务

理解片段事务期间片段的生命周期方法调用

深入理解mysql事务

提交带有全屏片段的片段事务