SQL控制事务之commit命令用法详解
COMMIT命令用于把事务所做的修改保存到数据库,它把上一个COMMIT或ROLLBACK命令之后的全部事务都保存到数据库。
这个命令的语法是: commit
[work];
关键字COMMIT是语法中惟一不可缺少的部分,其后是用于终止语句的字符或命令,具体内容取决于不同的实现。关键字WORK是个选项,其惟一作用是让命令对用户更加友好。
在下面这个范例里,我们首先从表PRODUCT_TMP里的全部数据开始:
select * from products_tmp;
prod_id
prod_desc
cost
12345 witches
costume 29.99
222 false paraffin
teeth 1.1
13
plastic pumpkin 7.75
90 lighted
lanterns
14.5
4 rows selected.
接下来,删除表里所有低于14.00的产品。
delete from products_tmp
where cost<14;
2 rows deleted.
使用一个COMMIT语句把修改保存到数据库,完成这个事务。
COMMIT;
commit complete.
警告:对于数据库的大规模数据加载或撤消来说,应该多使用COMMIT语句;然而,过多的COMMIT语句会让工作需要大量额外时间才能完成。
记住,全部修改都首先被送到临时回退区域,如果这个临时回退区域没有空间了,不能保存对数据库所做的修改,数据库很可能会挂起,禁止进行进一步的事务操作。
注意:在某些实现里,事务不是通过使用COMMIT命令提交的,而是由退出数据库的操作引发提交。
但是,在某些实现里,比如MySQL,在执行SETTRANSACTION命令之后,在数据库收到COMMIT或ROLLBACK之前,自动提交功能是不会恢复的。