title | date | tags | categories | description | |||
---|---|---|---|---|---|---|---|
oracle的事务及与删除操作的关联
|
2020-02-20 07:23:36 -0800
|
|
|
|
oracle的事务
对数据库中事务的理解
在数据库中事务是工作的逻辑任务,一个事务是由一个或多个SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么全部成功执行,完成整个工作任务,要么一个也不执行,对数据表所做的操作全部撤销。
例如银行转账
- A用户帐户余额减少1000元;
- B用户帐户余额增加1000元;
- 记录A用户的交易日志。
- 记录B用户的交易日志。
一次交易产生四次数据库操作,要么全部都成功,如果有一个失败,其它操作也应该全部被撤销。
提交事务
commit;
回滚事务
rollback;
删除操作与事务的关联
删除数据
删除表中数据有以下两种方式:
- delete 删除数据时,数据库需要写日志,ORACLE数据库还需要占用回滚段,每次事务越大,对数据库的冲击越大,所以在删除或者更新数据时,一定要注意控制事务的大小,避免产生大事务。如:
delete from tablename where ……;
用delete删除数据时,只删除数据,但不释放空间,并且产生碎片。
- truncate 删除表中所有数据,并回收存储空间,truncate不产生事务。
truncate table tablename;
删除表
删除表命令为drop,利用 drop命令删除表将删除表中全部的数据。不产生事务。
drop table tablename;