mysql中的事務
阿新 • • 發佈:2018-09-29
數據 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中的事務