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;

 

posted @ 2018-09-29 13:00  发疯的man  阅读(145)  评论(0编辑  收藏  举报