autocommit:
缺省MySql运行在autocommit模式, 这就意味着,当你执行完一个更新时,立刻将更新存储到磁盘上。
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)1 row in set (0.00 sec)
(@@autocommit是全局变量)
事务:
mysql> start transaction;
mysql> select @a:=sum(sal) from emp where deptno=18;
mysql> update t set sumsal=@a;
mysql> commit;
(在mysql中用户变量表示为:@var_name; 赋值: set @x=2; 或者 @x :=2;)
隐式提交:
像DDL语句是自动提交的,事务中不要包含这些语句。 还有一些命令也是自动结束一个事务: set autocommit=1; begin ; lock table; start transaction ; create index; rename table; truncate table .... (windows 中按住shift再删除文件时,不会放入回收站。)
回滚点(save point):
rollback ; 会回滚到start transaction; 如果设置savepoint xxx, 则可以回滚到指定地方: rollback xxx;
锁:
lock tables 表名 [read] [write] , 表名[read] [write] ......
unlock tables
例如:
mysql> lock tables trans read, customer write;
mysql> ...............
mysql> unlock tables;