Oracle清空数据库中数据表数据的方法
一、简介
最近在项目发版测试的时候,导出dmp的时候不小心把开发库中的一些脏数据导出来了,测试那边导入进去之后一堆不规范的数据,为了不影响测试结果,于是总结了一个快速清空数据库数据表所有数据的方法。
二、方法
(1). 第一种方法:分步骤实现
【a】第一步:禁止所有的外键约束.
打开plsql ,新建一个查询窗口,输入:
SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' ||constraint_name || ';'FROM user_constraintswhere CONSTRAINT_TYPE = 'R';
打开能执行sql的窗口即可
【b】第二步:用delete或truncate删除所有表的内容
SELECT 'DELETE FROM ' || table_name || ';'FROM USER_TABLESORDER BY TABLE_NAME;
【c】第三步:启用所有的外键约束
SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' ||constraint_name || ';'FROM user_constraintswhere CONSTRAINT_TYPE = 'R';
依次执行完这三个步骤之后,发现数据库中所有的数据表的数据都清空。
(2).第二种方法:执行脚本生成的sql,然后统一执行
【a】打开plsql查询窗口,执行如下plsql脚本
begindbms_output.put_line('--禁用外键SQL【开始】');for var1 in (SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' ||constraint_name || ';' as sqltextFROM user_constraintswhere CONSTRAINT_TYPE = 'R') loopdbms_output.put_line(var1.sqltext);end loop;dbms_output.put_line('--禁用外键SQL【结束】');dbms_output.new_line;dbms_output.put_line('--删除表记录SQL【开始】');for var1 in (SELECT 'DELETE FROM ' || table_name || ';' as sqltextFROM USER_TABLESORDER BY TABLE_NAME) loopdbms_output.put_line(var1.sqltext);end loop;dbms_output.put_line('--删除表记录SQL【结束】');dbms_output.new_line;dbms_output.put_line('--启用外键SQL【开始】');for var1 in (SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' ||constraint_name || ';' as sqltextFROM user_constraintswhere CONSTRAINT_TYPE = 'R') loopdbms_output.put_line(var1.sqltext);end loop;dbms_output.put_line('--启用外键SQL【结束】');dbms_output.new_line;
end;
【b】然后在output这个tab中复制出所有的sql
【c】统一执行sql:
推荐使用第二种方法,更加简单方便,但是如果在生产环境中的话,凡是涉及到删除数据的都要谨慎操作,防止用户的数据丢失,如果大家在有需要清空数据的时候可以考虑使用该方法。
Oracle清空数据库中数据表数据的方法相关推荐
- Oracle将数据库中的表数据导入到另一个数据库中
因为工作需要,把Oracle数据库1中的表数据导入到相同数据结构的数据库2表中,下面将数据库1简称为DB1,数据库2简称为DB2,刚开始的时候我只是简单的将DB1的表数据导出成sql脚本,然后导入到D ...
- mysql清空数据库中所有表数据_清空mysql数据库所有表数据
1,查看数据库状态 及启动停止 /etc/init.d/mysqld status/etc/init.d/mysqld start/etc/init.d/mysqld stop 2,给用户配置初始密码 ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- SqlServer清空一个数据库中所有表数据保留表结构
SqlServer将多行查询结果通过逗号拼接成一个字符串 select stuff((select ','+title from tb for xml path('')),1,1,'') --其中tb ...
- SQL 清空数据库的所有表数据
近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL S ...
- 【MySQL -ERROR】MySQL 报错 ERROR 1327 创建函数识别不出数据库中的表(解决方法)
1.问题背景 今天用MySQL创建含流程控制语句函数,遇到总会识别不出数据库中的courses表,courses是存在数据库中,且可以正常使用的,报错如下: ERROR 1327 (42000): U ...
- oracle删除数据库中的所有数据的拼接语句
create or replace function count_rows /** 查询各表实际记录数 */ (table_name in varchar2, owner in varchar2 de ...
- Oracle查询数据库中所有表的记录数
方法一: 首先建立一个计算函数 >>>>>>>>>>>>>>>>>>>>> ...
- oracle 查询数据库中所有表名
SELECT* FROMall_tables WHEREOWNER = '实例名称' ORDER BY table_name
最新文章
- c语言 栈结构存放数据类型,数据结构——栈的详解
- 两个pytorch版本Fnet
- 使用Jest操作ElasticSearch 报错:No time zone indicator问题的解决方案
- AB1601烧程序时注意事项
- 编解码再进化:Ali266与下一代视频技术
- JavaScript 进阶(二)变量作用域
- ASP.NET 2.0:如何让DropDownList同时拥有数据来源项目与自订项目 (转自章立民CnBlogs)...
- 计算机如何学会自动地进行图像美学增强?
- 如何评价周志华深度森林模型
- 优秀的设计UI界面按钮素材,让点击率飙升
- winform窗体MaximizeBox
- 嵌入式linux寄存器移位寻址,嵌入式系统及应用》 (32+16)教学大纲
- Matlab lowess拟合,matlab拟合出曲面后,还需要对应的公式
- \x75\x73\x65\x20\x73\x74\x72\x69\x63\x74解码
- 《项目》 之 ESP8266 心知天气 + 时钟 + WS2812点阵屏 + B站粉丝计数
- VSCode常用插件和字体设置
- 【前端】——HTML5基础知识(小白教程)
- Python中的循环遍历列表
- IE代理服务器设置被禁用问题
- [精]Oracle VPD详解(虚拟专用数据库)