oracle清空表内的数据

用什么方法清空那个表内的数据不破坏表结构啊?是用这个命令吗?TruncateTable[表名]具体的方法怎么用呢这个命令... 用什么方法清空那个表内的数据不破坏表结构啊?
是用这个命令吗?Truncate Table [表名]
具体的方法怎么用呢这个命令
展开
买用0Ho
2018-04-30 · TA获得超过4685个赞
知道答主
回答量:37
采纳率:100%
帮助的人:1.7万
展开全部

从语法上来说,在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 后全球第二大软件公司。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式