• oracle删除一张表后,索引,同义词,视图,约束会被删除么


    问题描述:看到有一道题,说删除一张表之后,什么会被关联删除

    进行测试,看看一张表什么会被关联删除,进行scoot下的EMP进行测试

    一、创建测试需求用例

    表结构:

    SQL> desc emp;
     Name                       Null?    Type
     ----------------------------------------- -------- ----------------------------
     EMPNO                       NOT NULL NUMBER(4)
     ENAME                            VARCHAR2(10)
     JOB                            VARCHAR2(9)
     MGR                            NUMBER(4)
     HIREDATE                        DATE
     SAL                            NUMBER(7,2)
     COMM                            NUMBER(7,2)
     DEPTNO                         NUMBER(2)

    创建视图:

    CREATE OR REPLACE VIEW V_EMP
    AS
    SELECT * FROM EMP WHERE ENAME LIKE '%A%'
    UNION ALL
    SELECT * FROM EMP WHERE ENAME LIKE '%S%'
    UNION ALL
    SELECT * FROM EMP WHERE SAL >= 3000;
    CREATE OR REPLACE VIEW V_EMP
    AS
    SELECT * FROM EMP WHERE ENAME LIKE '%A%'
    UNION
    SELECT * FROM EMP WHERE ENAME LIKE '%S%'
    UNION
    SELECT * FROM EMP WHERE SAL >= 3000;

    创建序列:

    CREATE SEQUENCE SEQ_BJSXT
    START WITH 20001
    INCREMENT BY 2
    MAXVALUE 99999999
    MINVALUE 1
    CYCLE
    CACHE 50

    创建同义词

    create or replace synonym syn_emp for scott.emp;

    删除前状态

    视图查询:

    SQL> select view_name,view_type from user_views;
    
    VIEW_NAME               VIEW_TYPE
    ------------------------------ ------------------------------
    V_EMP

    索引查询:

    SQL> select INDEX_NAME,TABLE_NAME,STATUS from user_indexes;
    
    INDEX_NAME               TABLE_NAME              STATUS
    ------------------------------ ------------------------------ --------
    SYS_IL0000089251C00003$$       TEST                  VALID
    IDX_T_ID               T                  VALID
    PK_EMPNO_OGG               EMP_OGG                  VALID
    PK_EMP                   EMP                  VALID
    IDX_EMP_ENAME               EMP                  VALID
    PK_DEPTNO_OGG               DEPT_OGG               VALID
    PK_DEPT                DEPT                  VALID
    
    7 rows selected.

    序列查询:

    SQL> r
      1* select * from user_sequences
    
    SEQUENCE_NAME            MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ_BJSXT                1   99999999        2 Y N          50       20101

    主键查询:

    主键
    INDEX_NAME TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESCEND INDEX_TYPE
    1 IDX_EMP_ENAME EMP ENAME 1 10 10 ASC NORMAL 2 PK_EMP EMP EMPNO 1 22 0 ASC NORMAL

    外键约束:

    select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 'EMP';
    1    SCOTT    FK_DEPTNO    R    EMP    <Long>    SCOTT    PK_DEPT    NO ACTION    ENABLED    NOT DEFERRABLE    IMMEDIATE    VALIDATED    USER NAME            2013/8/24 12:04:21    

    同义词查询:

    SQL> SELECT * FROM USER_SYNONYMS;
    
    SYNONYM_NAME               TABLE_OWNER              TABLE_NAME             DB_LINK
    ------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------
    SYN_EMP                SCOTT                  EMP

    user_obejcts状态查询:

    14和17分别是emp表和emp表中的索引object,其余的还能看到序列,视图,同义词的对象

    select * from user_objects;
           OBJECT_NAME    SUBOBJECT_NAME    OBJECT_ID    DATA_OBJECT_ID    OBJECT_TYPE    CREATED    LAST_DDL_TIME    TIMESTAMP    STATUS    TEMPORARY    GENERATED    SECONDARY    NAMESPACE    EDITION_NAME
    1    PK_DEPT        87107    87107    INDEX    2013/8/24 12:04:21    2013/8/24 12:04:21    2013-08-24:12:04:21    VALID    N    N    N    4    
    2    DEPT        87106    87106    TABLE    2013/8/24 12:04:21    2013/8/24 12:04:21    2013-08-24:12:04:21    VALID    N    N    N    1    
    3    BONUS        87110    87110    TABLE    2013/8/24 12:04:21    2013/8/24 12:04:21    2013-08-24:12:04:21    VALID    N    N    N    1    
    4    SALGRADE        87111    87111    TABLE    2013/8/24 12:04:21    2013/8/24 12:04:21    2013-08-24:12:04:21    VALID    N    N    N    1    
    5    EMP_OGG        88789    88789    TABLE    2020/12/23 13:14:06    2020/12/23 13:14:30    2020-12-23:13:14:06    VALID    N    N    N    1    
    6    DEPT_OGG        88790    88790    TABLE    2020/12/23 13:14:07    2020/12/23 13:14:42    2020-12-23:13:14:07    VALID    N    N    N    1    
    7    PK_EMPNO_OGG        88791    88791    INDEX    2020/12/23 13:14:11    2020/12/23 13:14:11    2020-12-23:13:14:11    VALID    N    N    N    4    
    8    PK_DEPTNO_OGG        88792    88792    INDEX    2020/12/23 13:14:12    2020/12/23 13:14:12    2020-12-23:13:14:12    VALID    N    N    N    4    
    9    TEST        89251    89251    TABLE    2021/6/13 16:12:42    2021/6/13 16:12:42    2021-06-13:16:12:42    VALID    N    N    N    1    
    10    IDX_T_ID        89274    89274    INDEX    2021/6/14 16:44:43    2021/6/14 16:44:43    2021-06-14:16:44:43    VALID    N    N    N    4    
    11    SYS_IL0000089251C00003$$        89253    89253    INDEX    2021/6/13 16:12:42    2021/6/13 16:12:42    2021-06-13:16:12:42    VALID    N    Y    N    4    
    12    SYS_LOB0000089251C00003$$        89252    89252    LOB    2021/6/13 16:12:42    2021/6/13 16:12:42    2021-06-13:16:12:42    VALID    N    Y    N    8    
    13    T        89273    89273    TABLE    2021/6/14 16:40:39    2021/6/14 16:44:45    2021-06-14:16:40:39    VALID    N    N    N    1    
    14    EMP        87108    87108    TABLE    2013/8/24 12:04:21    2022/1/23 16:31:06    2022-01-23:16:31:06    VALID    N    N    N    1    
    15    SEQ_BJSXT        90884        SEQUENCE    2022/1/23 16:04:25    2022/1/23 16:04:25    2022-01-23:16:04:25    VALID    N    N    N    1    
    16    SYN_EMP        90891        SYNONYM    2022/1/23 16:27:28    2022/1/23 16:27:28    2022-01-23:16:27:28    INVALID    N    N    N    1    
    17    BIN$1jx+fvk2Dy3gUwajqMCaPA==$1        90885    90885    INDEX    2022/1/23 16:04:38    2022/1/23 16:27:53    2022-01-23:16:27:53    VALID    N    N    N    4    
    18    V_EMP        90883        VIEW    2022/1/23 16:03:58    2022/1/23 16:03:58    2022-01-23:16:03:58    INVALID    N    N    N    1    
    19    BIN$1jx+fvk3Dy3gUwajqMCaPA==$1        87109    87109    INDEX    2013/8/24 12:04:21    2022/1/23 16:27:53    2022-01-23:16:27:53    VALID    N    N    N    4    
    20    PRO_SUPPLEMENT_LEAVE_MAPPING        90886        PROCEDURE    2022/1/23 16:10:40    2022/1/23 16:10:40    2022-01-23:16:10:40    INVALID    N    N    N    1    

    回收站:

    SQL> show recyclebin
    SQL> 

    二、删除表

    SQL> drop table emp;
    
    Table dropped.

    索引状态:

           INDEX_NAME    TABLE_NAME    STATUS
    1    SYS_IL0000089251C00003$$    TEST    VALID
    2    IDX_T_ID    T    VALID
    3    PK_EMPNO_OGG    EMP_OGG    VALID
    4    PK_DEPTNO_OGG    DEPT_OGG    VALID
    5    PK_DEPT    DEPT    VALID

    视图状态:

    SQL> select view_name,view_type from user_views;
    
    VIEW_NAME               VIEW_TYPE
    ------------------------------ ------------------------------
    V_EMP

    序列状态:

    SQL> select * from user_sequences;
    
    SEQUENCE_NAME            MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ_BJSXT                1   99999999        2 Y N          50       20101

    同义词状态:

    SQL> SELECT * FROM USER_SYNONYMS;
    
    SYNONYM_NAME               TABLE_OWNER              TABLE_NAME             DB_LINK
    ------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------
    SYN_EMP                SCOTT                  EMP

    user_objects状态查询:

    可以看到用户表以及索引就已经被删除了

    select * from user_objects;     
    OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME
    1 PK_DEPT 87107 87107 INDEX 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 4 2 DEPT 87106 87106 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1 3 BONUS 87110 87110 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1 4 SALGRADE 87111 87111 TABLE 2013/8/24 12:04:21 2013/8/24 12:04:21 2013-08-24:12:04:21 VALID N N N 1 5 EMP_OGG 88789 88789 TABLE 2020/12/23 13:14:06 2020/12/23 13:14:30 2020-12-23:13:14:06 VALID N N N 1 6 DEPT_OGG 88790 88790 TABLE 2020/12/23 13:14:07 2020/12/23 13:14:42 2020-12-23:13:14:07 VALID N N N 1 7 PK_EMPNO_OGG 88791 88791 INDEX 2020/12/23 13:14:11 2020/12/23 13:14:11 2020-12-23:13:14:11 VALID N N N 4 8 PK_DEPTNO_OGG 88792 88792 INDEX 2020/12/23 13:14:12 2020/12/23 13:14:12 2020-12-23:13:14:12 VALID N N N 4 9 TEST 89251 89251 TABLE 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N N N 1 10 IDX_T_ID 89274 89274 INDEX 2021/6/14 16:44:43 2021/6/14 16:44:43 2021-06-14:16:44:43 VALID N N N 4 11 SYS_IL0000089251C00003$$ 89253 89253 INDEX 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N Y N 4 12 SYS_LOB0000089251C00003$$ 89252 89252 LOB 2021/6/13 16:12:42 2021/6/13 16:12:42 2021-06-13:16:12:42 VALID N Y N 8 13 T 89273 89273 TABLE 2021/6/14 16:40:39 2021/6/14 16:44:45 2021-06-14:16:40:39 VALID N N N 1 14 SEQ_BJSXT 90884 SEQUENCE 2022/1/23 16:04:25 2022/1/23 16:04:25 2022-01-23:16:04:25 VALID N N N 1 15 SYN_EMP 90891 SYNONYM 2022/1/23 16:27:28 2022/1/23 16:27:28 2022-01-23:16:27:28 INVALID N N N 1 16 V_EMP 90883 VIEW 2022/1/23 16:03:58 2022/1/23 16:03:58 2022-01-23:16:03:58 INVALID N N N 1 17 PRO_SUPPLEMENT_LEAVE_MAPPING 90886 PROCEDURE 2022/1/23 16:10:40 2022/1/23 16:10:40 2022-01-23:16:10:40 INVALID N N N 1

    结合测试得出结论

    1.删除一张表,肯定会删除一张表中的数据和这个对象

    2.删除表后,同义词,视图,序列不会被删除

    3.删除表后,索引会被删除,不会失效。索引失效只有row_id发生重新排序的时候才会出现,比如分区进行增删,表move,压缩或者shrink的时候会出现索引失效的情况

    图中的答案应为:ACD

  • 相关阅读:
    【Codeforces 1051D】Bicolorings
    【Codeforces 827B】High Load
    【Codeforces 1006D】Two Strings Swaps
    【Codeforces 1108E1】Array and Segments (Easy version)
    【Codeforces 1141E】Superhero Battle
    【Codeforces 1042D】Petya and Array
    springmvc jar包下载 提供地址
    tomcat 8 startup.bat启动乱码问题
    js 对象数组删除和查找的方法
    sql 获取每个分组的前N条记录的写法
  • 原文地址:https://www.cnblogs.com/houzhiheng/p/15919562.html
Copyright © 2020-2023  润新知