zoukankan      html  css  js  c++  java
  • Oracle清空数据库中数据表数据的方法

    一、简介
    最近在项目发版测试的时候,导出dmp的时候不小心把开发库中的一些脏数据导出来了,测试那边导入进去之后一堆不规范的数据,为了不影响测试结果,于是总结了一个快速清空数据库数据表所有数据的方法。

    二、方法
    (1). 第一种方法:分步骤实现

     【a】第一步:禁止所有的外键约束.

    打开plsql ,新建一个查询窗口,输入:

    SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' ||

           constraint_name || ';'

      FROM user_constraints

     where CONSTRAINT_TYPE = 'R';
    打开能执行sql的窗口即可

    【b】第二步:用delete或truncate删除所有表的内容

    SELECT 'DELETE FROM ' || table_name || ';'

      FROM USER_TABLES

     ORDER BY TABLE_NAME;


    【c】第三步:启用所有的外键约束

    SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' ||

           constraint_name || ';'

      FROM user_constraints

     where CONSTRAINT_TYPE = 'R';


    依次执行完这三个步骤之后,发现数据库中所有的数据表的数据都清空。

    (2).第二种方法:执行脚本生成的sql,然后统一执行

    【a】打开plsql查询窗口,执行如下plsql脚本

    begin
    dbms_output.put_line('--禁用外键SQL【开始】');
    for var1 in (SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' ||
    constraint_name || ';' as sqltext
    FROM user_constraints
    where CONSTRAINT_TYPE = 'R') loop
    dbms_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 sqltext
    FROM USER_TABLES
    ORDER BY TABLE_NAME) loop
    dbms_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 sqltext
    FROM user_constraints
    where CONSTRAINT_TYPE = 'R') loop
    dbms_output.put_line(var1.sqltext);
    end loop;
    dbms_output.put_line('--启用外键SQL【结束】');
    dbms_output.new_line;
    end;
    【b】然后在output这个tab中复制出所有的sql

    【c】统一执行sql:

    推荐使用第二种方法,更加简单方便,但是如果在生产环境中的话,凡是涉及到删除数据的都要谨慎操作,防止用户的数据丢失,如果大家在有需要清空数据的时候可以考虑使用该方法。

     
    ---------------------

  • 相关阅读:
    Django笔记
    在vue框架里添加bootstrap与axios
    Mysql8和Mysql5.7部署同一服务器
    docker迁入迁出mysql
    mysql导出csv
    Yearning启停脚本(开机自启)
    go 语言的基础知识
    阅读《深入理解Kafka核心设计与实践原理》第五章 日志存储
    阅读《深入理解Kafka核心设计与实践原理》第四章 主题与分区
    阅读《深入理解Kafka核心设计与实践原理》第三章 消费者
  • 原文地址:https://www.cnblogs.com/ly570/p/11082409.html
Copyright © 2011-2022 走看看