一、简介

最近在项目发版测试的时候,导出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清空数据库中数据表数据的方法相关推荐

  1. Oracle将数据库中的表数据导入到另一个数据库中

    因为工作需要,把Oracle数据库1中的表数据导入到相同数据结构的数据库2表中,下面将数据库1简称为DB1,数据库2简称为DB2,刚开始的时候我只是简单的将DB1的表数据导出成sql脚本,然后导入到D ...

  2. mysql清空数据库中所有表数据_清空mysql数据库所有表数据

    1,查看数据库状态 及启动停止 /etc/init.d/mysqld status/etc/init.d/mysqld start/etc/init.d/mysqld stop 2,给用户配置初始密码 ...

  3. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

  4. SqlServer清空一个数据库中所有表数据保留表结构

    SqlServer将多行查询结果通过逗号拼接成一个字符串 select stuff((select ','+title from tb for xml path('')),1,1,'') --其中tb ...

  5. SQL 清空数据库的所有表数据

    近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL S ...

  6. 【MySQL -ERROR】MySQL 报错 ERROR 1327 创建函数识别不出数据库中的表(解决方法)

    1.问题背景 今天用MySQL创建含流程控制语句函数,遇到总会识别不出数据库中的courses表,courses是存在数据库中,且可以正常使用的,报错如下: ERROR 1327 (42000): U ...

  7. oracle删除数据库中的所有数据的拼接语句

    create or replace function count_rows /** 查询各表实际记录数 */ (table_name in varchar2, owner in varchar2 de ...

  8. Oracle查询数据库中所有表的记录数

    方法一: 首先建立一个计算函数 >>>>>>>>>>>>>>>>>>>>> ...

  9. oracle 查询数据库中所有表名

    SELECT* FROMall_tables WHEREOWNER = '实例名称' ORDER BY table_name

最新文章

  1. c语言 栈结构存放数据类型,数据结构——栈的详解
  2. 两个pytorch版本Fnet
  3. 使用Jest操作ElasticSearch 报错:No time zone indicator问题的解决方案
  4. AB1601烧程序时注意事项
  5. 编解码再进化:Ali266与下一代视频技术
  6. JavaScript 进阶(二)变量作用域
  7. ASP.NET 2.0:如何让DropDownList同时拥有数据来源项目与自订项目 (转自章立民CnBlogs)...
  8. 计算机如何学会自动地进行图像美学增强?
  9. 如何评价周志华深度森林模型
  10. 优秀的设计UI界面按钮素材,让点击率飙升
  11. winform窗体MaximizeBox
  12. 嵌入式linux寄存器移位寻址,嵌入式系统及应用》 (32+16)教学大纲
  13. Matlab lowess拟合,matlab拟合出曲面后,还需要对应的公式
  14. \x75\x73\x65\x20\x73\x74\x72\x69\x63\x74解码
  15. 《项目》 之 ESP8266 心知天气 + 时钟 + WS2812点阵屏 + B站粉丝计数
  16. VSCode常用插件和字体设置
  17. 【前端】——HTML5基础知识(小白教程)
  18. Python中的循环遍历列表
  19. IE代理服务器设置被禁用问题
  20. [精]Oracle VPD详解(虚拟专用数据库)

热门文章

  1. 假期无聊冰河开发了一款国民级游戏!
  2. Linux学习笔记之编码转换
  3. Paillier算法详解及Java实现
  4. VS2010 多线程编程
  5. CSS自定义鼠标样式
  6. python的try和except用法_python中try及except使用
  7. covfefe靶场练习
  8. connection holder is null
  9. 如何设计一条好的测试用例----打卡第二天
  10. oracle 扩容步骤,oracle 表空间扩容方法