Truncate & Trunc 的区别

truncate table tablename


ORACLE的一个SQL语句!


可以直接删除全表数据!删除以后无法回滚!删除数据的时候,保证没有子表数据,存在子表数据使用级联删除,不起作用!
并且删除数据以后的相关序列可以自动重置(需要重写)!
其执行效率远远高于DELETE操作!
这就是和DELETE的比较!
1.不可以下条件删除
2.如果有子表,就不会删除,不过可以撤销外健约束~

注意:并且删除数据以后的相关序列可以自动重置(需要重写)
这个意思:

也就是说在使用表中存在所谓的自增字段的时候的!
可以自动是在MSSQLSERVER中的意思!
也就是说,在SQLServer中当使用了自增字段后!
假设现在表中有10行记录了
使用DEL和TRUCATE删除数据以后,再INSERT数据的时候,那个自增字段的数据是不一样的!
使用DEL的是11
而使用TRUCATE的是1
这就是区别!这主要是在SQLSERVER中的差异!
ORACLE中要使下一个数据为1则必须重置SEQ就可以了!
当然Oracle中不重置也可以继续使用

Trunc总共有两个类型 Number & date
TRUNC (number)
The following example truncate numbers:
SELECT TRUNC(15.79,1) "Truncate" FROM DUAL;
Truncate
----------
15.7
SELECT TRUNC(15.79,-1) "Truncate" FROM DUAL;
Truncate
----------
10

TRUNC (date)
The TRUNC (date) function returns date with the time portion of the day truncated
to the unit specified by the format model fmt. If you omit fmt, then date is
truncated to the nearest day.
Examples
The following example truncates a date:
SELECT TRUNC(TO_DATE(’27-OCT-92’,’DD-MON-YY’), ’YEAR’)
"New Year" FROM DUAL;
New Year
---------
01-JAN-92

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值