文档课题:主键失效对该主键对应列上索引的影响.
数据库:oracle 19.12
以下测试过程.
SQL> ALTER TABLE LOCATIONS01 DISABLE PRIMARY KEY CASCADE;
Table altered.
SQL> SELECT INDEX_NAME,INDEX_TYPE,TABLE_NAME FROM USER_INDEXES WHERE TABLE_NAME='LOCATIONS01';
no rows selected
说明:可以看到主键失效后,主键上对应的索引无法查询到.
SQL> SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,INDEX_NAME,STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME='LOCATIONS01';
CONSTRAINT_NAME C TABLE_NAME INDEX_NAME STATUS
------------------------- - -------------------- --------------- --------
SYS_C008319 C LOCATIONS01 ENABLED
SYS_C008320 P LOCATIONS01 DISABLED
SQL> ALTER TABLE LOCATIONS01 ENABLE PRIMARY KEY;
Table altered.
SQL> SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,INDEX_NAME,STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME='LOCATIONS01';
CONSTRAINT_NAME C TABLE_NAME INDEX_NAME STATUS
------------------------- - -------------------- --------------- --------
SYS_C008319 C LOCATIONS01 ENABLED
SYS_C008320 P LOCATIONS01 SYS_C008320 ENABLED
SQL> SELECT INDEX_NAME,INDEX_TYPE,TABLE_NAME FROM USER_INDEXES WHERE TABLE_NAME='LOCATIONS01';
INDEX_NAME INDEX_TYPE TABLE_NAME
--------------- --------------------------- --------------------
SYS_C008320 NORMAL LOCATIONS01
结论:oracle主键失效后对应的索引会被删除,当重新激活该主键时,索引会自动创建.