delete : 删除表数据!
可以使用rollback 回滚数据! 删除的时候,会记录日志文件,采用rollback 的时候,会读取日志恢复数据!
truncate : 删除表数据!
truncate table tname; 彻底删除数据,因为它不写日志! 效率高!风险高!
oracle 数据库默认事务开启: 对数据的安全性要求非常严格!
使用delete 命令时,必须要手动提交commit 才能生效! 给了用户的确认时间! 保证数据的安全性! rollback!
mysql 数据库演示的时候,感觉跟没有开启事务一样! 事务开启的!但是有自动提交!
因为只用delete 命令时,不需要commit 也能生效! autocommit = true; 自动提交功能!没有用户的确认时间!相对于数据来讲不太安全!
#设置mysql 不自动提交事务
set autocommit = off;
总结:
delete 与 truncate 的区别!
mysql 与 oracle 测试对比!在事务开启,且不自动提交的情况下
delete删除需要记录日志,能够回滚数据,相对于数据来讲安全!
truncate删除不需要记录日志,不能回滚数据,相当于数据来讲不安全!