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:
推荐使用第二种方法,更加简单方便,但是如果在生产环境中的话,凡是涉及到删除数据的都要谨慎操作,防止用户的数据丢失,如果大家在有需要清空数据的时候可以考虑使用该方法。
---------------------
Oracle清空数据库中数据表数据的方法的更多相关文章
- 【Sqlserver清空数据库中所有表数据】
脚本: CREATE PROCEDURE sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT AL ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- 清空SQL Server数据库中所有表数据的方法
原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可 ...
- SQLServer清空数据库中所有表的数据
今早同事跟进客户反馈的问题时,提了个要求,要求清空数据库中所有表的数据. 记得之前用游标遍历所有的表名 + exec 动态语句 truncate table 表名 实现过这个功能. 网上搜了下,有更简 ...
- Oracle查询数据库中所有表的记录数
1.Oracle查询数据库中所有表的记录数,但是有可能不准建议用第二种方式进行查询 select t.table_name,t.num_rows from user_tables t 2.创建orac ...
- 关于从Oracle数据库中删除表数据
1,删除表 drop 1.1 执行drop table table_name 语句 被 drop后的表被放在用户回收站(user_recyclebin)里,而没有被直接删除掉,回收站里的表可以被恢复 ...
- Sql Server 导入还有一个数据库中的表数据
在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例.阐述一下: 1.打开SQL Server Management ...
- Mysql如何清空数据库的所有表数据
1.先查询出库中的所有表,“db”是数据库名称 SELECT CONCAT('truncate table ',TABLE_NAME,';') AS a FROM INFORMATION_SCHEMA ...
- oracle删除数据库中的所有数据的拼接语句
create or replace function count_rows/**查询各表实际记录数*/(table_name in varchar2,owner in varchar2 default ...
随机推荐
- Naïve Bayes Models
贝叶斯模型假设: 为防止概率为零的情况,做拉普拉斯平滑得: 下面介绍一下朴素贝叶斯模型与多变量伯努利模型的区别: 朴素贝叶斯: 多变量伯努利: 即: 多变量伯努利模型不考虑样本出现的次数,每个特征的取 ...
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时11
课时11 神经网络训练细节part1(下) 2010年,Glorot等人写的论文,我们称之为Xavier初始化,他们关注了神经元的方差表达式.他们推荐一种初始化方式,那就是对每个神经元的输入进行开根号 ...
- Cannot call value of non-function type 'UITextView'报错
iOS里面的开发,类写到一半就报错这个.后来发现是因为重名的时候召唤对象不明确的问题.先贴代码,晚点再说 出错点 //ヒントをクリアするためのイニシャライザ init (clearStr: UITex ...
- sql server编写一个语句脚本自动清空各表数据以初始化数据库
问题:有时已有项目要移植,例如原来在广州地区使用的某系统,突然说惠州那边也要用这套一样的系统.或者,在demo环境下弄了一些测试数据.然后要清空全部表数据.如果表比较多的话,逐个表手工编写脚本就太麻烦 ...
- c#数据类型和类型转换
C# 数据类型 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型(Value type ...
- Hdu 5446 Unknown Treasure (2015 ACM/ICPC Asia Regional Changchun Online Lucas定理 + 中国剩余定理)
题目链接: Hdu 5446 Unknown Treasure 题目描述: 就是有n个苹果,要选出来m个,问有多少种选法?还有k个素数,p1,p2,p3,...pk,结果对lcm(p1,p2,p3.. ...
- 洛谷p2922[USACO08DEC]秘密消息Secret Message
题目: 题目链接:[USACO08DEC]秘密消息Secret Message 题意: 给定n条01信息和m条01密码,对于每一条密码A,求所有信息中包含它的信息条数和被它包含的信息条数的和. 分析: ...
- vue中methods中的方法闭包缓存问题
vue中methods中的方法闭包缓存问题 问题背景 需求描述 在路由的导航栏中需要, 判断是否为第一次点击 需要一个标志位来记录是否点击过 现状: 这个标志位只在一个函数中用过.不希望存放全局 希望 ...
- 福建工程学院第七届ACM程序设计新生赛 (同步赛)
A.关电脑 #include<bits/stdc++.h> using namespace std; typedef long long LL; int T,h1,m1,s1,h2,m2, ...
- shell expect
关键的action spawn 调用要执行的命令expect 捕捉用户输入的提示 send 发送需要交互的值,替代了用户手动输入内容set 设置变量值 ...