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 ...
随机推荐
- Tomcat黑窗口改变Title
start cmd /K " && call startup.bat && pause && exit " 设置Title之后,再手 ...
- 百度之星资格赛 1003 度度熊与邪恶大魔王(二维dp)
分析 挺好的一道题 dp[i][j]表示打败i颗血j防御力的怪兽需要的最少宝石数 然后就好了,复杂度\(O(n+m*1000*10)\) #include <bits/stdc++.h> ...
- 3DMAX 8 角色建模2 身体
身体 20 25 60 分段 3 2 3 位置直接设置到-12.5 0 0,删除内部面,实例镜像出另一半x偏移25 1 身体大体形状 ,,,, 2 背阔肌 , 3腹肌 4 臀部 ,, 5 肩部 调整点 ...
- python __builtins__ property类 (55)
55.'property', 获取对象的所有属性 class property(object) | property(fget=None, fset=None, fdel=None, doc=Non ...
- web移动端下拉加载数据简单实现
//下拉加载在移动端会经常使用,有些小伙伴不清楚一些原理下面就简答的介绍一下 //首先需要监听window的滚动事件,下拉其实就是在监听window滚动事件 var pageNum = 1;//分页第 ...
- Spring事务引发dubbo服务注册问题
文章清单 1. 问题 2. 查找bug过程 3. 解决方案 使用spring boot+dubbo写项目,一个服务,之前是正常的,后来调用方出现空指针异常,第一反应提供方出了问题. 1. 看控制台,服 ...
- April Fools Contest 2017 C
Description DO YOU EXPECT ME TO FIND THIS OUT? WHAT BASE AND/XOR LANGUAGE INCLUDES string? DON'T BYT ...
- set有关的函数的用法(The SetStack Computer UVA - 12096)
#include<bits/stdc++.h> using namespace std; typedef set<int> Set; map<Set,int> ID ...
- 贪心 Codeforces Round #303 (Div. 2) B. Equidistant String
题目传送门 /* 题意:找到一个字符串p,使得它和s,t的不同的总个数相同 贪心:假设p与s相同,奇偶变换赋值,当是偶数,则有答案 */ #include <cstdio> #includ ...
- 为页面添加favicon
<link rel="shortcut icon" href="favicon.ico" /> 还有另一种写法,但是IE对它的支持不够好: < ...