MySQL学习:
- 1.关于MySQL的基本概念
- 2.关于MySQL的多表操作
- 3.关于MySQL视图
- 4.关于MySQL存储过程
- 5.关于MySQL游标
- 6.关于MySQL管理事务处理
- 7.关于MySQL字符集和校对
- 8.关于MySQL安全管理
- 9.关于MySQL数据库维护
MySQL事务
事务处理用来维护数据库的完整性,用来管理成批执行的MySQL操作。
介绍几个术语
- 事务(transaction)
指一组SQL语句。
- 回退(rollback)
指撤销指定SQL语句的过程。
- 提交(commit)
指将末存储的SQL语句结果写入数据库表。
- 保留点(savepoint)
指事务处理中设置的临时占位符,你可以对它发布回退(与回退整个事务处理不同)。
使用MySQL事务
- 标志事务的开始
使用START TRANSACTION语句来标志开始。
START TRANSACTION;
- 回退(撤销)MySQL语句
使用 ROLLBACK 命令来回退MySQL语句。
注意:
- ROLLBACK只能在一个事务处理内使用(在执行一条START TRANSACTION命令之后)。
- 事务处理用来管理INSERT、UPDATE和DELETE语句,不能回退SELECT(没意义)、CREATE和DROP(用了也没效果)。
-- 说明表中有数据
SELECT * FROM students;
-- 标示事务的开始
START TRANSACTION;
-- 删除表中的数据
DELETE FROM students;
-- 表示表中数据为空
SELECT * FROM students;
-- 撤销上一条语句
ROLLBACK;
-- 表名撤销成功
SELECT * FROM students;
- 提交事务
一般的MySQL语句都是隐含提交的,即提交(写或保存)操作时自动进行的。
COMMIT 语句仅在不出错时写出更改。
当 COMMIT 或 ROLLBACK 语句执行后,事务会自动关闭,将来的更改会隐含提交。
语句1;
语句2;
COMMIT;
- 使用保留点
为了支持回退部分事务处理,必须能在事务处理块中合适的位置放保留点。
使用 SAVEPOINT name_p 命令来创建,用 ROLLBACK TO name_p 来回退。
SAVEPOINT name_p1;
...
SAVEPOINT name_p2;
ROLLBACK To name_p1;
注意:
- 保留点越多越好。
- 保留点在事务处理完成(执行一条 ROLLBACK 或 COMMIT)后自动释放。
- 更改默认的提交行为
为指示MySQL不自动提交更改,需要使用 SET autocommit=0 语句。
SET autocommit = 0;
其中autocommit标志决定是否自动提交更改,设置为0(假)时指示MySQL不自动提交更改,知道设置为真为止。
若有不当之处,欢迎指正!