首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

oracle删除主键索引的sql语句_oracle主键索引和普通索引

for enforcement of unique /primary key 这个错误,对应的中文提示“ORA-02429: 无法删除用于强制唯一/主键索引”,其实从错误提示信息已经很明显了。...ORA-02429错误的原因是因为用户试图删除一个用于强制唯一/主键索引,解决方法也很简单,删除对应的约束就会自动删除索引。...* ERROR at line 1: ORA-02429: cannot drop index used for enforcement of unique/primary key 解决方法: 删除对应的约束就会自动删除索引...而不是直接去删除索引! SQL> ALTER TABLE TAB_TEST DROP CONSTRAINT PK_TAB_TEST; Table altered....1.2)删除主键约束 alter table 表名 drop constraint 主键名(通过上一步查找出来) 1.3)添加主键约束 alter table 表名 add constraint 主键

3.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql 查看索引、添加索引删除索引命令添加索引删除索引

    查看索引 mysql> show index from tblname; mysql> show keys from tblname; mysql> show index from center_bank_rate...· Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。...· Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。 · Cardinality 索引中唯一值的数目的估计值。...基数越大,当进行联合时,MySQL使用该索引的机 会就越大。 · Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。...· Comment 添加索引 ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) 删除索引 mysql> alter

    3.4K10

    主键索引就是聚集索引MySQL 索引类型大梳理

    之前松哥在前面的文章中介绍 MySQL索引时,有小伙伴表示被概念搞晕了,主键索引、非主键索引、聚簇索引、非聚簇索引、二级索引、辅助索引等等,今天咱们就来捋一捋这些概念。 1....全文索引MySQL 中支持的版本也需要大家留意一下: MySQL 5.6 以前的版本,只有 MyISAM 存储引擎支持全文索引。...MySQL 的全文索引最开始只支持英文,因为英文分词比较方便;中文分词就比较麻烦,所以最早的 MySQL 全文索引是不支持中文的。...不过 MySQL 的全文索引并不好用,有这方面的需求还是直接上 Es 吧。...一张表只能有一个聚集索引,但可以有多个非聚集索引。使用聚集索引的时候,数据的查询效率高,但如果对数据进行插入,删除,更新等操作,效率会比非聚集索引低。 3.

    2.3K20

    mysql 唯一索引_mysql主键和唯一索引的区别

    Mysql索引大概有五种类型: 普通索引(INDEX):最基本的索引,没有任何限制 唯一索引(UNIQUE):与”普通索引”类似,不同的就是:索引列的值必须唯一,但允许有空值。...主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。...联合(组合)索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。 这里我们来看下唯一索引。...之前我们看了主键索引,他是一种特殊的唯一索引,二者的区别是,主键索引不能有空值,但是唯一索引可以有空值。...如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据,否则,直接插入新数据。

    2.8K30

    MySQL ORDER BY主键id加LIMIT限制走错索引

    背景及现象 report_product_sales_data表数据量2800万; 经测试,在当前数据量情况下,order by主键id,limit最大到49的时候可以用到索引report_product_sales_data_hq_code_orgz_id_index...,大于49时就走PRIMARY主键索引。...在order by 主键id时,limit值的大小达到了某个临界值后,改变了执行计划,选择了主键索引,但不知道具体的规则究竟是怎样。...由于自身的优化器选择,为了避免某些排序的消耗,可能会走非预期的PRIMARY主键索引; order by 和 limit 结合使用,如果where 字段,order by字段都是索引,那么有limit索引会使用...查看是否使用到了最优索引; 利用optimizer trace查看优化器执行过程; 观察mysql的slow_query_log,及时做排查优化。

    1.8K10

    MySQL ORDER BY主键id加LIMIT限制走错索引

    背景及现象 report_product_sales_data表数据量2800万; 经测试,在当前数据量情况下,order by主键id,limit最大到49的时候可以用到索引report_product_sales_data_hq_code_orgz_id_index...,大于49时就走PRIMARY主键索引。...在order by 主键id时,limit值的大小达到了某个临界值后,改变了执行计划,选择了主键索引,但不知道具体的规则究竟是怎样。...由于自身的优化器选择,为了避免某些排序的消耗,可能会走非预期的PRIMARY主键索引; 对于数据量比较大,而且执行量很高的分页sql,尽可能将所有的查询字段包括在索引中,同时使用索引来消除排序; 多用explain...查看是否使用到了最优索引; 利用optimizer trace查看优化器执行过程; 观察mysql的slow_query_log,及时做排查优化。

    6.7K32

    mysql怎么创建,删除,查看索引

    mysql是一个开源的应用非常广泛的数据库。mysql里面的索引能利用利用指针,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。...,二索引有分为几类,普通索引主键索引,和唯一索引,如图就是步骤:图中数123就是对应普通索引主键索引,和唯一索引 alter table 表名 add index/unique/primary key...,会引起增删改查的性能,所以可以创建就可以删除,命令如下: drop index 索引名 on 表名; DROP INDEX index_name ON talbe_name; ALTER TABLE...table_name DROP INDEX index_name; ALTER TABLE table_name DROP PRIMARY KEY; 第五步,在上面删除索引的时候,出现了错误...,说不能发现索引名,是因为在第一次的时候已经删除了,所以,此索引名已经不存在了,如图 第六步,再次查询索引,是否有没有删除成功,重复第三步的命令,结果如图,说明已经删除了 发布者

    10.3K20

    mysql 联合主键_Mysql 创建联合主键

    char(8), cc date, primary key (aa,bb ) ); aa,bb为联合主键 不知道是不是因为mysql(6.0)的版本问题,还是各版本都是这种情况,mysql中创建联合主键...NOT NULL, ) NOT NULL ) ON [PRIMARY] GO SET ANSI_PADD … oracle 主键删除,联合主键的创建 1,主键删除  ALTER TABLE TABLENAME...DROP PRIMARY_KEY 运行上面的SQL能够删除主键:假设不成功能够用 ALTER TABLE TABLENAME DROP C … Oracle 主键、联合主键的查询与创建 –查询某个表是否有唯一主键...涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A … SQL Server中的联合主键、聚集索引、非聚集索引mysql...联合索引 我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升

    8.3K20

    主键、聚集索引、辅助索引

    主键和聚集索引的关系 先来看聚集索引,上面我们说过,InnoDB 存储引擎表是索引组织表结构,即表中数据都是按照主键顺序进行存放的。...一张表只能有一个主键,并且也只能有一个聚集索引,聚集索引还是按照主键来构建的,那这种种迹象不都表明主键就是聚集索引? 事实上,主键索引就不是一个层次的东西!...而至于 “主键就是索引” 这种观点的由来,是因为:InnoDB 存储引擎中,每张表都一定存在主键(显示或隐式),而聚集索引依赖于主键的建立,所以如果没有强制指定使用非聚集索引,InnoDB 在创建主键的同时会建立一个唯一的聚集索引...(也有些文章称之为 主键索引)。...所以,不要说 “主键就是聚集索引”,应该这样说:“聚集索引一般都是加在主键上的”。 聚集索引和辅助索引的关系 辅助索引(Secondary Index)也称为 非聚集索引、二级索引

    80410

    MySQL聚簇索引物理结构及主键查询过程

    数据页分裂的过程,在你不停往表里灌入数据时,会搞出来一个个数据页,若你的主键非自增,他可能会有一个数据行挪动过程,保证你下一个数据页的主键值都大于上一个数据页的主键值。...对此,就得针对主键设计个索引,针对主键索引实际上就是主键目录:把每个数据页的页号,还有数据页里最小的主键值放在一起,组成一个索引的目录 有了上图的主键目录就好多了,直接到主键目录搜索id=3的数据,...此时就会和每个数据页的最小主键来比,首先id=3大于了数据页2里的最小主键值1,接着小于了数据页8里的最小主键值4。...假设有很多数据页,在主键目录里就会有很多数据页和最小主键值,此时完全可二分查找待查询id在哪个数据页。 所以这效率很高,类似上图的主键目录就能认为是主键索引。...数据页都是一坨坨连续数据,放在很多磁盘文件,所以只要你能根据主键索引定位到数据所在的数据页,此时假设我们有别的方式存储了数据页跟磁盘文件的对应关系,此时你就可以找到一个磁盘文件。

    1.2K20

    唯一索引主键索引的比较

    唯一索引 唯一索引不允许两行具有相同的索引值。 如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。...例如,用户表中的身份证(idcard) 列上创建了唯一索引,则所有身份证不能重复 主键索引 主键索引是唯一索引的特殊类型。 数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。...该列称为表的主键。 在数据库关系图中为表定义一个主键将自动创建主键索引主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。...比较: 1对于主健/unique constraint , oracle/sql server/mysql等都会自动建立唯一索引; 2主键不一定只包含一个字段,所以如果你在主键的其中一个字段建唯一索引还是必要的...; 3主健可作外健,唯一索引不可; 4主健不可为空,唯一索引可; 5主健也可是多个字段的组合; 6主键与唯一索引不同的是: (1).有not null属性; (2).每个表只能有一个。

    3.1K110

    mysql 索引主键 外键等概念彻底理清楚

    参考文章: Mysql 索引详解和优化 数据库原理-几种数据模型 Mysql中的key和index的区别 (讲的很合理) Mysql中的Cascade,NO ACTION,Restrict...,SET NULL几种功能说明 Mysql中key 、primary key 、unique key 与index区别 重点总结: 1、mysql 的特点: 括号里面是-类型,外面是-名字。...不存在歧义的概念: 1、 primary key 数据库的每张表只能有一个主键,不可能有多个主键。所谓的一张表多个主键,我们称之为联合主键。联合主键就是用多个字段一起作为一张表的主键。...主键主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。 唯一性:列可以不唯一,但联合起来必须唯一。...2、 存在歧义的概念: key 和 索引index 1、索引—在SQL语句里叫 key 错综复杂的关系: 1、primary key 与 外键 一图理解: ?

    2.5K10

    主键、唯一索引、普通索引及约束

    唯一索引是这样一种索引,它通过确保表中没有两个数据行具有完全相同的键值来帮助维护数据完整性。 换个说法,有了唯一索引就可以确保数据表不会有相同行数据(组成唯一索引键的列)....唯一键约束与唯一索引又有什么区别? 唯一键约束与唯一索引的区别只有一个:唯一键约束不允许空值的存在,而唯一索引是允许空值的存在的。 2....主键索引 (primary key) ALTER TABLE `table_name` ADD PRIMARY KEY (`id`); 主键索引,是一种特殊的唯一索引(不允许有空值)。...数据表通常用一列或多列来唯一标识行数据,这一列或多列就是主键。 Q:主键索引与唯一索引有啥区别呢? A:1. 主键不允许空值存在的;2. 一个表仅有一个主键。...参考 主键和唯一索引的区别 唯一索引和非唯一索引

    4.6K30

    mysql 主键自增语句_MySQL 自增主键

    自增主键有两个性质需要考虑: 单调性 每次插入一条数据,其 ID 都是比上一条插入的数据的 ID 大,就算上一条数据被删除。...自增主键的单调性 为何会有单调性的问题? 这主要跟自增主键最大值的获取方式,以及存放位置有关系。 如果最大值是通过计算获取的,并且在某些情况下需要重新获取时,会因为最新的数据被删除而减小。...MySQL 5.7 及之前的版本,自增主键最大值会在启动(重启)后从数据库中取出放到内存: SELECT MAX(ai_col) FROM table_name FOR UPDATE; 这样获取是通过计算的...从 MySQL 8.0 开始,自增主键最大值会在每次修改后写入到 redo log,并且在每个检查点写入引擎私有的系统表。 如果是正常重启,则读取系统表里的值。...参考文档 为什么 MySQL 的自增主键不单调也不连续 https://database.51cto.com/art/202004/614923.htm 《MySQL技术内幕——InnoDB存储引擎》

    10.8K10

    Mysql资料 主键

    表中的任何列都可以作为主键,只要它满足以下条件: 1、任何两行都不具有相同的主键值 2、每个行都必须具有一个主键值(主键列不允许NULL值) 除MySQL强制实施的规则外,应该坚持的几个普遍认为的最好习惯为...id int(11); ALTER TABLE s2 DROP PRIMARY KEY; 增加自增长主键前,先增加主键,再自增长 删除主键前,先删除自增长,再删除主键 三.技巧 主键的作用,在于索引无特殊需求下...这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15...2、.如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置: 此时MySQL不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉...如果没有显式地在表定义时指定主键,InnoDB存储引擎会为每一行生成一个6字节的ROWID,并一次作为主键mysql 在频繁的更新、删除操作,会产生碎片。而含碎片比较大的表,查询效率会降低。

    3.8K20
    领券