PK Nounique CASCADE DROP INDEX keep index
| Explicit Control Over Indexes when Creating, Disabling, or Dropping PK/Unique Constraints (Doc ID 139666.1) | 编辑To Bottom |
|
![]()
PURPOSEIn Oracle 9i, the DBA has an explicit control over how indexes are affectedwhile creating, disabling, or dropping Primary Key (PK) and unique constraints.This bulletin explains the different behaviours of indexes associated withPrimary Key or UNIQUE constraints according to the new clauses used when you execute one of the following commands:CREATE TABLE ... PRIMARY KEY/UNIQUEALTER TABLE ... DISABLE PRIMARY KEY/UNIQUEALTER TABLE ... DROP PRIMARY KEY/UNIQUESCOPE & APPLICATIONIt is important for DBAs to know what happens to the indexes when creating,disabling or dropping a constraint relying on an index, since indexes may have to be rebuilt after these operations. This can have two consequences:- Indexes may be missing for the Cost Based Optimizer (CBO) if the DBA thinks that the index was not dropped. This can have a major impact on performance.- Index rebuilding takes time.Explicit control over INDEXES when DISABLING/DROPPING PK, Unique constraints:
=============================================================================A. Creation of Primary Key/Unique constraints and associated index ----------------------------------------------------------------In the following views, depending on the way you created the Primary Key (PK)or UNIQUE constraint and its associated index, you get these different combinations:+-----------------+ +------------+| DBA_CONSTRAINTS | | DBA_INDEXES|+-----------------+ +------------+----------------------------- ------------Constraint_name Index_name Index_name--------------- ------------- ------------
Case 1: Create constraint, and index PK_EMP_ID EMP_ID_IX EMP_ID_IX explicitely within the samestatement.Case 2: Create constraint, and index PK_EMP_ID PK_EMP_ID PK_EMP_ID implicitely within the same statement.Case 3: Create constraint and index PK_EMP_ID - EMP_ID_IX separately within twostatements.Enable the constraint. PK_EMP_ID EMP_ID_IX EMP_ID_IX-------------------------------------------------------------------------
Case 1: Create constraint and index explicitely within the same statement
-------------------------------------------------------------------------SQL> drop table <OWNER>.<TABLE_NAME>
Table dropped.SQL> create table <OWNER>.<TABLE_NAME>(emp_id NUMBERCONSTRAINT pk_emp_id PRIMARY KEY USING INDEX(CREATE INDEX <OWNER>.emp_id_ix ON <OWNER>.<TABLE_NAME>(emp_id)TABLESPACE indx),ename VARCHAR2(12),sal number);Table created.SQL> select index_name,uniqueness from dba_indexes where table_name='<TABLE_NAME>';INDEX_NAME UNIQUENES------------------------------ ---------EMP_ID_IX NONUNIQUESQL> select constraint_name,index_name, constraint_type from dba_constraintswhere table_name='<TABLE_NAME>' and constraint_type='P';CONSTRAINT_NAME INDEX_NAME C------------------------------ ------------------------------ -PK_EMP_ID EMP_ID_IX P-------------------------------------------------------------------------
Case 2: Create constraint and index implicitely within the same statement
-------------------------------------------------------------------------SQL> drop table <OWNER>.<TABLE_NAME>
Table dropped.SQL> create table <OWNER>.<TABLE_NAME>(emp_id NUMBERCONSTRAINT pk_emp_id PRIMARY KEY USING INDEX TABLESPACE indx,ename VARCHAR2(12),sal number);Table created.SQL> select index_name,uniqueness from dba_indexes where table_name='<TABLE_NAME>';INDEX_NAME UNIQUENES------------------------------ ---------PK_EMP_ID UNIQUESQL> select constraint_name,index_name, constraint_type from dba_constraintswhere table_name='<TABLE_NAME>' and constraint_type='P';CONSTRAINT_NAME INDEX_NAME C------------------------------ ------------------------------ -PK_EMP_ID PK_EMP_ID P--------------------------------------------------------------------
Case 3: Create constraint and index separately within two statements
--------------------------------------------------------------------SQL> drop table <OWNER>.<TABLE_NAME>
Table dropped.SQL> create table <OWNER>.<TABLE_NAME>(emp_id NUMBERCONSTRAINT pk_emp_id PRIMARY KEY DISABLE,ename VARCHAR2(12),sal number);Table created.SQL> create index <OWNER>.emp_id_ix on <OWNER>.<TABLE_NAME>(emp_id)tablespace indx;
Index created.SQL> select index_name,uniqueness from dba_indexes where table_name='<TABLE_NAME>';INDEX_NAME UNIQUENES------------------------------ ---------EMP_ID_IX NONUNIQUESQL> select constraint_name,index_name, constraint_type from dba_constraintswhere table_name='<TABLE_NAME>' and constraint_type='P';CONSTRAINT_NAME INDEX_NAME C------------------------------ ------------------------------ -PK_EMP_ID PSQL> alter table <OWNER>.<TABLE_NAME> ENABLE constraint pk_emp_id;
Table altered.SQL> select index_name,uniqueness from dba_indexes where table_name='<TABLE_NAME>';INDEX_NAME UNIQUENES------------------------------ ---------EMP_ID_IX NONUNIQUESQL> select constraint_name,index_name, constraint_type from dba_constraintswhere table_name='<TABLE_NAME>' and constraint_type='P';CONSTRAINT_NAME INDEX_NAME C------------------------------ ------------------------------ -PK_EMP_ID EMP_ID_IX PB. Disabling PK/UNIQUE constraints: what happens to the associated index ---------------------------------------------------------------------In Case 1 where the index was created explicitely within the same statementas the constraint, the index is in both cases disassociated from the constraint; depending on the clause "CASCADE DROP INDEX" usage, the index is dropped or not.In traditionnal Case 2, the behavior remains the same: using the clause "CASCADE DROP INDEX" or not does not influence the usual behavior: it automatically drops the relying index.In case 3, disabling the constraint drops the index or not: * if the constraint has never been enabled, it never drops the index.* but in most cases, the constraint has been enabled for some time. In this case, the clause "CASCADE DROP INDEX" drops the index.+-----------------+ +------------+| DBA_CONSTRAINTS | | DBA_INDEXES|+-----------------+ +------------+----------------------------- ------------Constraint_name Index_name Index_name--------------- ------------- ------------
Case 1: ALTER TABLE ... DISABLE PK PK_EMP_ID - - CASCADE DROP INDEX;orALTER TABLE ... DISABLE PK; PK_EMP_ID - EMP_ID_IX Case 2: ALTER TABLE ... DISABLE PK PK_EMP_ID - - CASCADE DROP INDEX;or ALTER TABLE ... DISABLE PK; PK_EMP_ID - - Case 3: ALTER TABLE ... DISABLE PK PK_EMP_ID - - CASCADE DROP INDEX;or ALTER TABLE ... DISABLE PK; PK_EMP_ID - EMP_ID_IXC. Dropping PK/UNIQUE constraints: what happens to the associated index ---------------------------------------------------------------------In Case 1, where the index was created explicitely within the same statementas the constraint, the index is by default KEPT when the constraint is dropped.If you want the index to be dropped, you have to explicitely ask for it through the "DROP INDEX" clause.In case 2, the behavior is the opposite: if you want the index to be kept and the constraint dropped, you have to explicitly ask for it with the "KEEP INDEX" clause; otherwise the index is DROPPED by default.In Case 3, dropping the constraint drops the index or not: * if the constraint has never been enabled, it never drops the index.* but in most cases, the constraint has been enabled for some time. Then the index is by default KEPT when the constraint is dropped. If you want the index to be dropped, you have to explicitly ask for it with the "DROP INDEX" clause.+-----------------+ +-----------+| DBA_CONSTRAINTS | |DBA_INDEXES|+-----------------+ +-----------+----------------------- ------------Constraint Index_name Index_name----------- ----------- ------------
Case 1: ALTER TABLE ... DROP PK DROP INDEX; - - -
Case 1: ALTER TABLE ... DROP PK KEEP INDEX; - - EMP_ID_IX
Case 1: ALTER TABLE ... DROP PK; - - EMP_ID_IX Case 2: ALTER TABLE ... DROP PK DROP INDEX; - - -
Case 2: ALTER TABLE ... DROP PK KEEP INDEX; - - PK_EMP_ID
Case 2: ALTER TABLE ... DROP PK; - - - Case 3: ALTER TABLE ... DROP PK DROP INDEX; - - -
Case 3: ALTER TABLE ... DROP PK KEEP INDEX; - - EMP_ID_IX
Case 3: ALTER TABLE ... DROP PK; - - EMP_ID_IX |
相关文章:
PK Nounique CASCADE DROP INDEX keep index
Explicit Control Over Indexes when Creating, Disabling, or Dropping PK/Unique Constraints (Doc ID 139666.1)编辑To Bottom PURPOSEIn Oracle 9i, the DBA has an explicit control over how indexes are affectedwhile creating, disabling, or dropping Primary Ke…...
【Antd】实现Table组件行点击,解决某一列不触发行点击
今天有个新需求,点击table行,执行一些操作。实现过程中遇到了:点击操作列、操作列内按钮会冒泡触发行点击。antd版本:1.7.8 一、解决方案 customRow <a-table :customRow"handleClickRow" :data-source"data_li…...
Kafka3.0.0版本——Broker( 退役旧节点)示例
目录 一、服务器信息二、先启动4台zookeeper,再启动4台kafka三、通过PrettyZoo工具验证启动的kafka是否ok四、查看4台kafka集群节点上是否存在创建的名称为news的主题五、退役旧节点5.1、执行负载均衡操作5.2、 执行停止命令5.3、再次查看kafka中的创建过的名称为ne…...
【Rust】Rust学习 第十二章一个 I/O 项目:构建一个命令行程序
本章既是一个目前所学的很多技能的概括,也是一个更多标准库功能的探索。我们将构建一个与文件和命令行输入/输出交互的命令行工具来练习现在一些你已经掌握的 Rust 技能。 Rust 的运行速度、安全性、单二进制文件输出和跨平台支持使其成为创建命令行程序的绝佳选择…...
【MySQL--->表的操作】
文章目录 [TOC](文章目录) 一、创建表二、查看表三、修改表四、删除表drop table 表名;  一、创建表 语句格式:create table 表名(列名 类型,…)字符集 校验规则 存储引擎;字符集和校…...
PyTorch从零开始实现ResNet
文章目录 代码实现参考 代码实现 本文实现 ResNet原论文 Deep Residual Learning for Image Recognition 中的50层,101层和152层残差连接。 代码中使用基础残差块这个概念,这里的基础残差块指的是上图中红色矩形圈出的内容:从上到下分别使用…...
企业微信 企业内部开发 学习笔记
官方文档 文档 术语介绍 引入pom <dependency><groupId>com.github.binarywang</groupId><artifactId>wx-java-cp-spring-boot-starter</artifactId><version>4.5.3.B</version></dependency>核心代码 推送消息 final WxCp…...
03 QT基本控件和功能类
一 进度条 、水平滑动条 垂直滑动条 当在QT中,在已知类名的情况下,要了解类的构造函数 常用属性 及 信号和槽 常用api 特征:可以获取当前控件的值和设置它的当值 ---- int ui->progressBar->setValue(value); //给进度条设置一个整型值 ui->progressBar->value…...
epoll数据结构
目录 1.大量的fd 集合。选择什么数据结构?2、Epoll 数据结构Epitem 的定义Eventpoll 的定义 1.大量的fd 集合。选择什么数据结构? 查找频率很高的数据结构 1.红黑树 2.哈希(扩容缩容) 3. b/btree (降低树的高度&#…...
LINUX学习笔记_GIT操作命令
LINUX学习笔记 GIT操作命令 基本命令 git init:初始化仓库git status:查看文件状态git add:添加文件到暂存区(index)git commit -m “注释”:提交文件到仓库(repository)git log&a…...
第一百二十九天学习记录:数据结构与算法基础:栈和队列(中)(王卓教学视频)
栈的表示和实现 顺序栈的初始化 ##入栈 链栈的表示...
C语言 — qsort 函数
介绍:qsort是一个库函数,用来对数据进行排序,可以排序任意类型的数据。 void qsort (void*base, size_t num, size_t size, int(*compart)(const void*,constvoid*) ) qsort 具有四个参数: …...
开放式耳机哪个好一点?推荐几款优秀的开放式耳机
在追求更广阔的音场和更真实的音质时,开放式耳机是绝对值得考虑的选择。它们以其通透感和自然的音质而备受推崇,带来更逼真的音乐体验。下面我来推荐几款优秀的开放式耳机,满足你对音质和舒适度的要求,可尽情享受音乐的魅力。 一…...
vue-cli前端工程化——创建vue-cli工程 router版本的创建 目录结构 案例初步
目录 引出创建vue-cli前端工程vue-cli是什么自动构建创建vue-cli项目选择Vue的版本号 手动安装进行选择创建成功 手动创建router版多了一个router 运行测试bug解决 Vue项目结构main.jspackage.jsonvue.config.js Vue项目初步hello案例 总结 引出 1.vue-cli是啥,创建…...
Go和Java实现外观模式
Go和Java实现外观模式 下面我们通过一个构造各种形状的案例来说明外观模式的使用。 1、外观模式 外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型 模式,它向现有的系统添加一个接口ÿ…...
人工智能(一)基本概念
人工智能之基本概念 常见问题什么是人工智能?人工智能应用在那些地方?人工智能的三种形态图灵测试是啥?人工智能、机器学习和深度学习之间是什么关系?为什么人工智能计算会用到GPU? 机器学习什么是机器学习?…...
〔AI 绘画〕Stable Diffusion 之 解决绘制多人或面部很小的人物时面部崩坏问题 篇
✨ 目录 🎈 脸部崩坏🎈 下载脸部修复插件🎈 启用脸部修复插件🎈 插件生成效果🎈 插件功能详解 🎈 脸部崩坏 相信很多人在画图时候,特别是画 有多个人物 图片或者 人物在图片中很小 的时候&…...
初步认识OSI/TCP/IP一(第三十八课)
1 初始OSI模型 OSI参考模型(Open Systems Interconnection Reference Model)是一个由国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的网络通信协议规范,它将网络通信分为七个不同的层次,每个层次负责不同的功能和任务。 2 网络功能 数据通信、资源共享…...
英伟达结构化剪枝工具Nvidia Apex Automatic Sparsity [ASP](2)——代码分析
伟达结构化剪枝工具Nvidia Apex Automatic Sparsity [ASP](2)——代码分析 ASP整个模块的结果如下: . ├── COPYRIGHT ├── README.md ├── __init__.py ├── asp.py ├── permutation_lib.py ├── permutation_search_kernels…...
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
pyspark demo程序创建spark上下文 完整报错如下: sc SparkContext(“local”, “Partition ID Example”) File “C:\ProgramData\anaconda3\envs\python36\lib\site-packages\pyspark\context.py”, line 133, in init SparkContext._ensure_initialized(self, ga…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
