www.7671.net > orAClE清空表

orAClE清空表

两种方式:1、delete from 表名;2、truncate table 表名;1可以删除全部数据,也可以根据条件删除数据;2只能删除全部数据,比1速度要快.

drop table tablename; 这样就可以删除表了.例如:drop table scott.emp; 删除一个在scott用户下表名为emp的表.强烈建议一定要加用户名,不然删除了别的用户下的表就得不偿失了.drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.删除表的时候一定要考虑清楚,表真的没有用了.不然后期恢复起来很麻烦的.

建立分区,将需要删除的数据存在特定分区里,删除该分区就可以了. alter table 表名 drop partition 分区名 ; 应该很快.

B/C 均可以.B 删除速度快,不做任何记录.C 删除数据会留下删除记录,所以执行速度较慢.根据实际需要进行选择,但选取任何一个都不算错

如果是清空用户下所有对象可以直接删用户,如果只是想删除所有表,可利用系统视图自己写一段代码循环删除,如果是想清空用户下所有表数据,也是可以系统视图写,可自由发挥,如样例脚本:-- 禁用外键约束 begin for v_sql in (select 'alter

我觉得还是概念不清析,问题不太明白呀.所果只是简单的清空表的话,还是很容易的.drop table TABLE_NAME ; //连表结构都删了.要是清空内容,留着表结构,就是:truncate tablename; // 就可以了.如果是数据库表文件要删的话,就不和你说了.

一个游标加一个 execute immediate 就可以具体我给你写出来吧 --@author WFQ declare v_sql varchar2(2000) ; CURSOR cur is select table_name from user_tables order by table_name ; begin for rows in cur loop v_sql := 'TRUNCATE TABLE ' || rows.table_name ; dbms_output.put_line(v_sql); execute immediate v_sql ; end loop; end; /

删除表里面的数据:delete table 表名; Oracle会记录日志,可恢复 速度慢 truncate table 表名; 不记录日志,速度快,不可恢复 drop table 表名; 直接删除掉表

可以使用以下3种方式实现:1、如果有plsql客户端,则可以使用该用户登录,选中所有表 右键Drop即可.2、如果有删除用户的权限,则可以写: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉.3、如果没有删除用户的权限,则可以执行: select 'drop table '||table_name||';' from cat where table_type='TABLE'

如果是全清空,下面这几个方法你都可以选择:传统的delete 速度慢,不是放空间,Oracle有写入日志,可以恢复,但是速度慢delete from table_name;truncate table talbe_name; --速度快,释放空间,但是不记录日志,不可恢复先备份下表结构,然后表结构连同数据都一起删掉,之后重建表,表结构记录下后:drop table table_name; 然后重建

网站地图

All rights reserved Powered by www.7671.net

copyright ©right 2010-2021。
www.7671.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com