深入学习MYSQL-事务

事务

首先在开始介绍使用事务之前,我们先说明一下。在建表是时候如果需要使用事务的话最好要使用InnoDB这个引擎,更好的支持事务。
 事务(transaction)指一组SQL语句;
 回退(rollback)指撤销指定SQL语句的过程;
 提交(commit)指将未存储的SQL语句结果写入数据库表;
 保留点(savepoint)指事务处理中设置的临时占位符(place- holder),你可以对它发布回退(与回退整个事务处理不同)。

  • rollback
    当commit或rollback语句执行后,事务会自动关闭,后续的更改会采用隐含提交。
SELECT * FROM ordertotals;
START TRANSACTION;
DELETE FROM ordertotals;
SELECT * FROM ordertotals;
--撤回删除操作
ROLLBACK;
SELECT * FROM ordertotals;
  • commit
    在事务出来模块中,提交不会隐含的进行,为了明确的使用commit语句,一般需要显示的什么commit语句。
START TRANSACTION;
DELETE FROM orderitems WHERE order_num = 20010;
DELETE FROM orders WHERE order_num = 20010;
COMMIT;
  • 保留点
    为了方便退回我我们指定的位置我们可以设置保留点
SELECT * FROM ordertotals;
START TRANSACTION;
-- 删除之前的保存点
SAVEPOINT beforedelete;
DELETE FROM ordertotals WHERE order_num = '20005';
-- 插入之前的保存点
SAVEPOINT beforeinsert;
SELECT * FROM test_delete;
INSERT INTO test_delete(before_id,after_id)values('demo','demo');	
SELECT * FROM test_delete;
SELECT * FROM ordertotals;
--退回
ROLLBACK TO beforeinsert;
ROLLBACK TO beforedelete;

上面相当于没有对表进行删除和插入操作。

未完更多知识待补充。

你可能感兴趣的:(数据库,mysql,学习,数据库)