首页
学习
活动
专区
圈层
工具
发布

mysql删除主键和删除索引(含删除unique索引)

mysql删除主键和删除索引(含删除unique索引) ##删除表 DROP TABLE config_back; ##删除主键 ALTER TABLE config_back DROP PRIMARY...update_op` varchar(50) DEFAULT NULL COMMENT '修改人', `is_delete` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除...' 在MySQL中移除主键有以下几种不同的实现方法: 使用ALTER TABLE语句移除主键约束: ALTER TABLE 表名 DROP PRIMARY KEY; 这种方法适用于需要移除表中已有主键的情况...ALTER TABLE config_back DROP PRIMARY KEY, ADD UNIQUE KEY (`price_end`); ##删除索引(含删除unique索引) ALTER TABLE...ALTER TABLE config_back DROP PRIMARY KEY, ADD INDEX (`insurance_value`); 这些方法都是通过ALTER TABLE语句实现的,可以根据具体需求选择适合的方法

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

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

    user_idx on table (userid); 3.再重复第一步,验证一下,是否成功 二.oracle表删除索引 相信不少人遇到过ORA-02429: cannot drop index used...for enforcement of unique /primary key 这个错误,对应的中文提示“ORA-02429: 无法删除用于强制唯一/主键的索引”,其实从错误提示信息已经很明显了。...下面还是用一个简单的例子述说一下该错误的来龙去脉。 ORA-02429错误的原因是因为用户试图删除一个用于强制唯一/主键的索引,解决方法也很简单,删除对应的约束就会自动删除该索引。...&设置某一字段可以为null 1.oracle主键修改 1.1)首先查看需要修改的表的主键名,默认的情况下,数据库会自动分配 select * from user_cons_columns where...primary key(字段名1,字段名2...); 主键名命名规则建议为pk_表名 2.oracle设置字段可以为空 alter table 表名 modify 字段名 null; 版权声明:本文内容由互联网用户自发贡献

    4.6K10

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

    全文索引(FULLTEXT ):可用于 MyISAM 表,mysql5.6之后也可用于innodb表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间。...之前我们看了主键索引,他是一种特殊的唯一索引,二者的区别是,主键索引不能有空值,但是唯一索引可以有空值。...,经常导致慢查询,耗时2秒左右,遇忙时更有达到5秒的 改用unique之后,查询耗时在0.0003秒 基本可以忽略不计 三:唯一索引和主键索引的具体区别 1:唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值...4:建立主键的目的是让外键来引用. 5: 一个表最多只有一个主键,但可以有很多唯一键 四:存在唯一键冲突时,避免策略 1:使用insert ignore语句 insert ignore会忽略数据库中已经存在的数据...如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据,否则,直接插入新数据。

    3.8K30

    MySQL中主键为0和主键自排约束的关系

    再重置一下自动排序,看看这个0会不会有变化, 先取消自排; 再加上自排,果然跟想的一样,0要变成1了,错误提示说的是主键有重复的1所以不让自排, 修改之后,果真可以了,0变成1了,        ...我觉得也就这几种情况吧,无符号的情况应该没什么区别,还有什么没有考虑的希望大家给我留言,可以告诉我你是怎么想的,我也很想知道,现在抛砖引玉我把我的总结和想法写一下:   对我来说,0在数据库里很特殊。...如果把表中的某个主键的数改成0,那直接就会进行排序放到正数前面,也就是说主键自排是允许有0存在的,那为什么本身存在的0要去修改成从1开始的递增序列呢?...开始没0,增加主键自排约束,新添加的主键是0的行会根据行数自行变化,注意这里是新添加的行,使用的是insert。   开始没0,把某个主键的数修改成0,这个0会直接在排好序了再在表里显示出来。...说得简单一点就是,增加主键自排约束后:    主键的值:修改成的0,可以存在,就是排个序。         新添加的0,不允许存在,要根据行号改变。

    5.1K30

    Mysql中的索引

    Mysql索引类型 Primary key/主键索引,Innodb 中又叫聚簇索引,InnoDB存储引擎的表会存在主键(唯一非null),如果建表的时候没有指定主键,则会使用第一非空的唯一索引作为聚集索引...全文索引可以在CHAR、VARCHAR或者TEXT类型的列上创建 SPATIL(空间索引):空间索引是对空间数据类型的字段建立的索引,MySQL中的空间数据类型有4种,分别是GEOMETRY、POINT...查询优化:生成执行计划 1.解析sql语句,生成解析树,验证语法是否正确(如:select,from关键字)是否正确。 2.预处理,进一步检查语法树是否合法,检查所查询的表是否存在,验证用户权限。...将查询结果返回客户端(如果查询可以被缓存,Mysql也会将结果放到查询缓存) 什么是索引 索引是一种数据结果,用来提高获取数据的效率。...图中的每个节点称为页,页就是我们上面说的磁盘块,在MySQL中数据读取的基本单位是页,所以我们这里叫做页更符合MySQL中索引的底层数据结构。

    3.9K20

    MYSQL用法(十) 索引的创建和删除

    索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表, 因此可以在同时创建多个索引。    ...这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。 下面的SQL语句对students表在sid上添加PRIMARY KEY索引。...删除掉table_name中的索引index_name。...如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。 如果从表中删除了某列,则索引会受到影响。...对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。 如果删除组成索引的所有列,则整个索引将被删除。

    1.9K30

    mysql的innodb与myisam(oracle主键和唯一索引的区别)

    InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了 1、事务和外键 InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全...如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能 MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。...如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择 2、全文索引 Innodb不支持全文索引,如果一定要用的话,最好使用sphinx等搜索引擎。...myisam对中文支持的不是很好 不过新版本的Innodb已经支持了 3、锁 mysql支持三种锁定级别,行级、页级、表级; MyISAM支持表级锁定,提供与 Oracle 类型一致的不加锁读取(non-locking...read in SELECTs) InnoDB支持行级锁,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,注意间隙锁的影响 例如

    91130

    MySQL 数据库创建索引及删除索引的操作命令

    有四种方式来添加数据表的索引: ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL...以下实例为在表中添加索引。 mysql> ALTER TABLE testalter_tbl ADD INDEX (c); 你还可以在 ALTER 命令中使用 DROP 子句来删除索引。...尝试以下实例删除索引: mysql> ALTER TABLE testalter_tbl DROP INDEX c; ---- 使用 ALTER 命令添加和删除主键 主键作用于列上(可以一个列或多个列联合主键...KEY (i); 你也可以使用 ALTER 命令删除主键: mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY; 删除主键时只需指定PRIMARY KEY...,但在删除索引时,你必须知道索引名。

    3.2K20

    「Mysql索引原理(三)」Mysql中的Hash索引原理

    如果哈希冲突很多,一些索引维护操作的代价会很高。 ? 如果从表中删除一行,需要遍历链表中的每一行,找到并删除对应行的引用,冲突越多,代价越大。...自定义哈希索引 在InnoDB中,某些索引值被使用的非常频繁的时候,它会在内存中基于B+Tree的基础上再创建一个哈希索引,使其不必要在从根节点就行查找。...和B+Tree索引不同,这类索引无需前缀查询。空间索引从所有维度索引数据。查询时,可以有效地使用任意维度来组合查询。必须使用Mysql的GIS相关函数如MBRCONTAINS()等来维护数据。...Mysql 的GIS并不完善,大部分人不会使用到这个特性。开源关系数据库中对GIS的解决方案做得比较好的是PostgreSQL的PostGIS。...全文索引 全文索引是一种特殊类型的索引,它查找的是文本中的关键字,而不是直接比较索引中值。全文索引和其他类索引的匹配方式完全不一样。

    9.7K11

    MySQL中的索引详解

    Full-text(全文索引)是一种通过建立倒排索引,快速匹配文档的方式,类似于Lucene、Solr、ES我们使用的MySQL的innodb引擎就是使用的B+树索引,Memory引擎使用的是hash索引...唯一索引: 主键索引就是唯一索引,只要这个字段被设置成了唯一的,那么就可以对这个字段创建一个唯一索引。普通索引: 普通索引的话就是对普通字段(非唯一、非主键)创建的索引。...按照数据存储维度划分分类依据:索引中是否存储了数据。聚簇索引: 聚簇索引的叶子节点保存着这行记录的所有字段的数据。一般主键索引就是聚簇索引,找数据也是从聚簇索引中读取到的。...非聚簇索引: 非聚簇索引中不保存具体的数据,叶子节点中记录的是该行记录的主键值,需要二次回表到主键索引(聚簇索引)中查找到对应的数据。按照设计维度划分分类依据:一个索引中包含的字段列数。...如果业务中我们需要频繁查询一个表的某几个字段数据,那么为了实现覆盖索引,我们就可以给这几个字段建立一个联合索引,然后查询的时候就会去走这个联合索引,可以避免回表查询。注: 联合索引有最左前缀原则。

    24521

    MySQL中的哈希索引

    mySQL中的哈希索引 在MySQL中,如果你使用的是Innodb存储引擎,那么经常会遇到B+树索引的概念,关于这个概念,之前的文章中我们讲过,除此之外,还有一种索引值得关注,那就是"哈希索引"。...这样做有一个比较直观的问题,就是有的数字映射到了集合中的同一个位置,把这种现象称之为哈希碰撞,解决这种碰撞最直接的办法就是使用链接法,就是映射到集合中同一位置的元素用链表进行链接,这样查询的时候,就可以直接去遍历这个链表进行查询了...2、Innodb会自动调优,如果判定自适应哈希索引能够提升效率,Innodb会自己建立相关的哈希索引,这个层面上讲,Innodb又支持哈希索引。 Innodb中哈希是怎样使用的呢?...一般我们要查询一条记录,最最重要的就是定位到这条记录所在的数据页,还是用上面那几个数为例:1、5、29、77、344、1908,我们创建一个表,包含id和number两个字段,其中id字段为自增主键,number...有优点也就有缺点,当然,缺点是和B+树索引对比而来的,Hash索引和B+ Tree索引的区别有: 1、哈希索引只能适用于等值查询,对于范围查询的场景,它无能为力,而B+ Tree索引可以轻松的处理; 2

    2K20

    MySQL索引的创建,查看,删除,修改操作详解

    index_type index_type表示索引的具体实现方式,在MySQL中,有两种不同形式的索引——BTREE索引和HASH索引。...在存储引擎为MyISAM和InnoDB的表中只能使用BTREE,其默认值就是BTREE;在存储引擎为MEMORY或者HEAP的表中可以使用HASH和BTREE两种类型的索引,其默认值为HASH。...另外,使用字段的一部分创建索引可以使索引文件大大减小,从而节省了大量的磁盘空间,有可能提高INSERT操作的速度。 在MySQL中,前缀长度最大值为255字节。...删除索引 在MySQL中删除索引的方法非常简单,其完整语法如下: –删除指定表中指定名称的索引 ALTER TABLE table_name DROP INDEX index_name; 在这里,我们编写...(username(8)); 查看索引 在MySQL中,要查看某个数据库表中的索引也非常简单,只需要使用以下两个命令中的任意一种即可。

    2.5K20

    MySql学习——MySql中的索引详解

    介绍了mysql的两种存储引擎的索引信息和mysql在不同查询语句中访问索引的方式 MySql学习——MySql中的索引详解 1....唯一索引:索引列的值必须唯一,但允许有空值。 复合索引:一个索引包含多个列。 从表记录的排列顺序和索引的排列顺序是否一致来划分 聚簇索引(主键):表记录的排列顺序和索引的排列顺序一致。...InnoDB中的索引方案 2.2 聚簇索引 2.2 二级索引 上边介绍的聚簇索引只能在搜索条件是主键值时才能发挥作用,因为B+树中的数据都是按照主键进行排序的。...使用二级索引与聚簇索引时的区别:由于聚簇索引即数据,所以在使用时可以直接找到数据信息,而二级索引由于只包含索引值(上图的c2)和聚簇索引(主键)信息,所以根据二级索引查找到信息时,必须再根据主键值去聚簇索引中再查找一遍完整的用户记录...MySql中的索引的使用条件 全值匹配:如果我们的搜索条件中的列和索引列一致的话,这种情况就称为全值匹配 匹配左边的列:在我们的搜索语句中也可以不用包含全部联合索引中的列,只包含左边的就行。

    2.3K20

    MySql学习——MySql中的索引详解

    介绍了mysql的两种存储引擎的索引信息和mysql在不同查询语句中访问索引的方式 MySql学习——MySql中的索引详解 1....唯一索引:索引列的值必须唯一,但允许有空值。 复合索引:一个索引包含多个列。 从表记录的排列顺序和索引的排列顺序是否一致来划分 聚簇索引(主键):表记录的排列顺序和索引的排列顺序一致。...MySql 中的索引 2.1 InnoDB中的索引方案 2.1.1 聚簇索引 2.1.2 二级索引 上边介绍的聚簇索引只能在搜索条件是主键值时才能发挥作用,因为B+树中的数据都是按照主键进行排序的...使用二级索引与聚簇索引时的区别:由于聚簇索引即数据,所以在使用时可以直接找到数据信息,而二级索引由于只包含索引值(上图的c2)和聚簇索引(主键)信息,所以根据二级索引查找到信息时,必须再根据主键值去聚簇索引中再查找一遍完整的用户记录...2.3 MySql中的索引的使用条件 全值匹配:如果我们的搜索条件中的列和索引列一致的话,这种情况就称为全值匹配 匹配左边的列:在我们的搜索语句中也可以不用包含全部联合索引中的列,只包含左边的就行。

    1.5K30

    MySQL索引中的前缀索引和多列索引

    正确地创建和使用索引是实现高性能查询的基础,本文笔者介绍MySQL中的前缀索引和多列索引。...,因为MySQL无法解析id + 1 = 19298这个方程式进行等价转换,另外使用索引时还需注意字段类型的问题,如果字段类型不一致,同样需要进行索引列的计算,导致索引失效,例如 explain select...,第二行进行了全表扫描 前缀索引 如果索引列的值过长,可以仅对前面N个字符建立索引,从而提高索引效率,但会降低索引的选择性。...当出现索引合并时表明表上的所有是有值得优化的地方,判断是否出现索引合并可以观察Extra列是否出现了如下信息 Using union(account_batch_batch_no_index,account_batch_source_system_index...); Using where 复制代码 如果是在AND操作中,说明有必要建立多列联合索引,如果是OR操作,会耗费大量CPU和内存资源在缓存、排序与合并上。

    6.2K00

    【MySQL】索引中的页以及索引的分类

    ,索引值必须是唯一的,不可以存在重复值。...:UNI 主键索引 1.定义 当在一个表上定义一个主键primary key时,自动创建索引,索引的值是主键列的值,主键的索引的列值不能为空且必须唯一,InnoDB使用它作为聚簇索引。...:PRI 三、索引的删除 语法 alter table class6 drop 索引名; 示例: -- 删除主键索引 -- 删除主键前,如果有自增属性,要先删除自增属性,否则删除主键失败 mysql...非聚簇索引: 索引与数据分离,叶子节点存储的是主键值。 查询时需要通过非聚簇索引找到叶子节点的索引记录,通过记录中的主键值在通过聚簇索引获取完整数据。 除聚簇索引外,都是聚簇索引。...有唯一索引、普通索引、组合索引等。 索引覆盖:当一个select语句使用了普通索引且查询列表中的列刚好是创建索引时的所有或部分列,这是就可以直接返回,而不用回表查询。

    29510
    领券