我们一般都认为TRUNCATE是一种不可回滚的操作,它会删除表中的所有数据以及重置Identity列. 如果你在事务中进行TRUNCATE操作,就能回滚.反之,它就不会从日志文件文件恢复数据.它不会在日志文件中记录删除的那些数据,它只在日志中记录数据页的单元分配. 下面的例子就能解释上面的所说的. USE temp_test_database GO --创建一个临时表 CREATE TABLE TruncateTabel(ID INT) INSERT INTO TruncateTabel(ID)
Hive删除操作主要分为几大类:删除数据(保留表).删除库表.删除分区. 一.仅删除表中数据,保留表结构 hive> truncate table 表名; truncate操作用于删除指定表中的所有行,相当于delete from table where 1=1.表达的是一个意思. 注意:truncate 不能删除外部表!因为外部表里的数据并不是存放在Hive Meta store中.创建表的时候指定了EXTERNAL,外部表在删除分区后,hdfs中的数据还存在,不会被删除.因此要想删除外部表数