oracle清空表内的数据
是用这个命令吗?Truncate Table [表名]
具体的方法怎么用呢这个命令 展开
从语法上来说,在excel中选择清空表内数据的时候常用的命令语句是“TRUNCATE TABLE name”。“TRUNCATE TABLE ”语句从功能上来说与无 WHERE 子句的 DELETE 语句是完全一致的。
但要是细细地具体比较起来,二者之间的不同包括以下几点:
1、“TRUNCATE TABLE”语句实际中 比 DELETE的运行速度要更快一些,而且使用的系统和事务日志资源要更少一些。
2、DELETE 语句在执行的过程中每删除掉一行数据,便会同时在事务日志中为所删除的每行添加记录一项。
“TRUNCATE TABLE ”语句则是通过释放存储表数据所用的数据页来对数据进行删除处理,并且只会在事务日志中记录页的释放,而不会为每一项添加记录。
3、“TRUNCATE TABLE”语句将会删除表中的所有行,但该表的结构以及其列、约束、索引等信息会保持原样不改变。新行标识所用的计数值重置变为该列的种子。
4、对于使用“ FOREIGN KEY ”语句来进行约束引用的excel表来说,并不能使用 “TRUNCATE TABLE”语句进行数据删除,而应该转而选择使用不带 WHERE 子句的 DELETE 语句。由于 “TRUNCATE TABLE” 不记录在日志中,所以它并不能激活触发器。
5、从功能上来说,truncate语句的作用是清空一个表的内容,相当于“delete from table_name”语句的作用。
6、同时,delete是dml操作,truncate是ddl操作。当使用delete语句执行删除整个表的数据的命令的时候,系统会自动产生大量的roolback,占用很多的rollback segments,造成资源浪费, 而使用truncate则不会出现这种情况。
因此,如果想要在删除数据的同时还保留标识计数值,那么最好是选择改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
具体应用示例:
下例删除 authors 表中的所有数据:“TRUNCATE TABLE authors”。
可以说它是“假相”的删除,相当于windows中用delete删除数据是把数据放到回收站中,还可以采取恢复的手段。对应地,如果用truncate语句清除表中的数据,内存中表空间中其被删除数据的表占用的空间会被立即释放。
oracle中文为甲骨文公司,全称是甲骨文股份有限公司或者是甲骨文软件系统有限公司。oracle是目前全球最大的企业级软件公司,它的总部位于美国加利福尼亚州的红木滩。在1989年,甲骨文公司开始正式进入中国市场。等到了2013年,甲骨文公司已经超越 了IBM公司 ,成为了继 Microsoft 后全球第二大软件公司。
2024-08-23 广告
广告 您可能关注的内容 |