zoukankan      html  css  js  c++  java
  • Oracle中快速查询和操作某个用户下的所有表数据信息

    一、禁止所有的外键约束

    在pl/sql developer下执行如下语句:
    SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' || constraint_name || ';' FROM user_constraints where CONSTRAINT_TYPE = 'R';
    把查询出来的结果拷出来在pl/sql developer时执行。

    先看看user_constraints是什么

    user_constraints是表约束的视图,描述的是约束类型(constraint_type)是什么,属于哪些表(table_name),如果约束的类型为R(外键)的话,那么r_constraint_name字段存放的就是被引用主表中的主键约束名。

    先看看user_cons_columns是什么

    user_cons_columns是表约束字段的视图,说明表中的和约束相关的列参与了哪些约束。这些约束有主键约束,外键约束,索引约束.
      两者可以通过(owner,constraint_name,table_name)关联 

    select 
    a.owner 外键拥有者, 
    a.table_name 外键表, 
    substr(c.column_name,1,127) 外键列, 
    b.owner 主键拥有者, 
    b.table_name 主键表, 
    substr(d.column_name,1,127) 主键列 
    from 
    user_constraints a, 
    user_constraints b, 
    user_cons_columns c, 
    user_cons_columns d 
    where 
        a.r_constraint_name=b.constraint_name 
    and a.constraint_type='R' 
    and b.constraint_type='P' 
    and a.r_owner=b.owner 
    and a.constraint_name=c.constraint_name 
    and b.constraint_name=d.constraint_name 
    and a.owner=c.owner 
    and a.table_name=c.table_name 
    and b.owner=d.owner 
    and b.table_name=d.table_name

    用delete或truncate删除用户所有表的内容

    SELECT 'DELETE FROM '|| table_name || ';' FROM USER_TABLES
    ORDER BY TABLE_NAME;

    SELECT 'TRUNCATE TABLE '|| table_name || ';' FROM USER_TABLES
    ORDER BY TABLE_NAME;
    用第一步类似的方法操作。要注意的一点是,若表的数据有触发器相关联,只能用truncate语句,不过truncate语句不能回滚,所以时要注意

    三、把已经禁止的外键打开

    SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' || constraint_name || ';' FROM user_constraints where CONSTRAINT_TYPE = 'R';

    查出来的表结果是执行语句:如下 

    1 TRUNCATE TABLE A;
    2 TRUNCATE TABLE ACCEPT_SN;
    3 TRUNCATE TABLE B;

  • 相关阅读:
    第8章 降维
    第7章 集成学习和随机森林
    JS利用async、await处理少见的登录业务逻辑
    SQL SERVER 实现多行转多列
    Mysql函数----控制流函数介绍
    继承----静态代码快、构造方法、代码块、普通方法的执行顺序
    RBAC----基于角色的访问权限控制
    秋招-----思特沃克视频面试总结
    tomcat启动失败的三种方法
    索引之----mysql联合索引
  • 原文地址:https://www.cnblogs.com/Luouy/p/5318468.html
Copyright © 2011-2022 走看看