oracle中trunc(sysdate-1)是什么意思

oracle中trunc(sysdate-1)是什么意思,第1张

trunc(sysdate)

就是取得当天的0时0分0秒的日期时间

sysdate

-

trunc(sysdate)

就是当前日期时间

0时0分0秒的

日期时间

的时间差(以天为单位)

truncate和delete的主要区别:

1、delete是DML,执行delete *** 作时,每次从表中删除一行,并且同时将该行的的删除 *** 作记录在redo和undo表空间中以便进行回滚(rollback)和重做 *** 作,但要注意表空间要足够大,需要手动提交(commit) *** 作才能生效,可以通过rollback撤消 *** 作。

2、delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。

3、delete语句不影响表所占用的extent,高水线(high watermark)保持原位置不变。

4、truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器。

5、truncate会删除表中所有记录,并且将重新设置高水线和所有的索引,缺省情况下将空间释放到minextents个extent,除非使用reuse storage,。不会记录日志,所以执行速度很快,但不能通过rollback撤消 *** 作(如果一不小心把一个表truncate掉,也是可以恢复的,只是不能通过rollback来恢复)。

6、对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。

7、truncatetable不能用于参与了索引视图的表。

扩展资料:

在速度上,一般来说truncate > delete。

如果想保留表而将所有数据删除,如果和事务无关,用truncate就好。

如果和事务有关,或者想触发trigger,还是用delete。

参考资料:truncate (计算机函数)-百度百科

delete (编程语言)-百度百科


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6806488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存