事务
首先在开始介绍使用事务之前,我们先说明一下。在建表是时候如果需要使用事务的话最好要使用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;
上面相当于没有对表进行删除和插入操作。
未完更多知识待补充。