mysql> set autocommit=off; Query OK, 0 rows affected (0.00 sec)
查看SQL语句自动提交是否关闭
1 2 3 4 5 6 7
mysql> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | autocommit | OFF | +---------------+-------+ 1 row in set (0.00 sec)
建立实验表
1 2 3 4 5 6 7 8 9 10 11 12
mysql> create table tao (col1 tinyint unsigned, col2 varchar(20), primary key(col1)); Query OK, 0 rows affected (0.08 sec) mysql> show create table tao \G; *************************** 1. row *************************** Table: tao Create Table: CREATE TABLE `tao` ( `col1` tinyint(3) unsigned NOT NULL DEFAULT '0', `col2` varchar(20) DEFAULT NULL, PRIMARY KEY (`col1`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
演示脏读Dirty Reads
更改隔离级别为Read Committed后,不存在脏读的问题。
1 2 3 4
mysql> set global tx_isolation='read-committed'; Query OK, 0 rows affected (0.00 sec) mysql> set session tx_isolation='read-committed'; Query OK, 0 rows affected (0.00 sec)
演示不可重复读Nonrepeatable Reads
更改隔离级别为Repeatable Read后,不存在不可重复读的问题。
1 2 3 4 5
mysql> set global tx_isolation='repeatable-read'; Query OK, 0 rows affected (0.00 sec) mysql> set session tx_isolation='repeatable-read'; Query OK, 0 rows affected (0.00 sec)
演示幻读Phantoms
更改隔离级别为完全串行化 Serializable 后,不存在幻读的问题。
1 2 3 4 5
mysql> set global tx_isolation='serializable'; Query OK, 0 rows affected (0.00 sec) mysql> set session tx_isolation='serializable'; Query OK, 0 rows affected (0.00 sec)