1. 程式人生 > >mysql中的事務

mysql中的事務

數據 tor 需要 innodb name weight upd span ()

我們在操作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中的事務