首页 > 数据库 >mysql删除主键和删除索引(含删除unique索引)

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

时间:2024-11-26 18:43:58浏览次数:11  
标签:删除 PRIMARY 主键 索引 KEY TABLE ALTER

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

##删除表
DROP TABLE config_back;

##删除主键
ALTER TABLE config_back DROP PRIMARY KEY;

错误代码: 1075
Incorrect table definition; there can be only one auto column and it must be defined as a key


##测试表
CREATE TABLE `config_back` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `price_begin` INT(11) NOT NULL COMMENT '价格开始范围',
  `price_end` INT(11) NOT NULL COMMENT '价格结束范围',
  `insurance_value` INT(11) NOT NULL COMMENT '运费险金额',
  `create_op` varchar(50) DEFAULT NULL COMMENT '创建人',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `update_op` varchar(50) DEFAULT NULL COMMENT '修改人',
  `is_delete` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0未删除 1已删除',
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='配置表备份表'

在MySQL中移除主键有以下几种不同的实现方法:

使用ALTER TABLE语句移除主键约束:

ALTER TABLE 表名 DROP PRIMARY KEY;

这种方法适用于需要移除表中已有主键的情况。

使用ALTER TABLE语句修改主键约束:

ALTER TABLE 表名 DROP PRIMARY KEY,
ADD PRIMARY KEY (列名);

这种方法适用于需要将原来的主键替换为其他列作为新的主键的情况。

##注意第一行后面的是逗号
ALTER TABLE config_back DROP PRIMARY KEY,
ADD PRIMARY KEY (`price_begin`);


使用ALTER TABLE语句移除主键约束并添加新的唯一索引:

ALTER TABLE 表名 DROP PRIMARY KEY,
ADD UNIQUE (列名);

这种方法适用于需要移除主键约束,但仍需要保持一定的唯一性约束的情况。

ALTER TABLE config_back DROP PRIMARY KEY,
ADD UNIQUE KEY (`price_end`);

##删除索引(含删除unique索引)

ALTER TABLE config_back DROP INDEX `price_end`;

使用ALTER TABLE语句移除主键约束并添加新的普通索引:

ALTER TABLE 表名 DROP PRIMARY KEY,
ADD INDEX (列名);

这种方法适用于需要移除主键约束,但不需要保持唯一性约束的情况。

ALTER TABLE config_back DROP PRIMARY KEY,
ADD INDEX (`insurance_value`);

这些方法都是通过ALTER TABLE语句实现的,可以根据具体需求选择适合的方法。

标签:删除,PRIMARY,主键,索引,KEY,TABLE,ALTER
From: https://www.cnblogs.com/oktokeep/p/18570774

相关文章

  • Pandas多层级索引创建
    Pandas多级层索引官方一点的说法:Pandas中的多级索引(MultiIndex)是一种允许在单个轴上拥有多个索引级别的索引对象。这种索引结构在处理具有复杂层次结构的数据时非常有用,因为它能够提供更丰富的数据访问和操作能力。我自己的理解是在excel表格中一个大类里面还有其他子类,子类存......
  • 百家号批量删除文章脚本
    补一句,百家号真恶心!functionsleep(ms){returnnewPromise(resolve=>setTimeout(resolve,ms));}asyncfunctionexecuteTasks(){while(1==1){awaitsleep(5000);constmouseOverEvent=newMouseEvent('m......
  • 清理 Windows 系统中与外部设备连接(如 USB 驱动器、外接硬盘等)相关的历史记录和注册表
    清理Windows系统中与外部设备连接(如USB驱动器、外接硬盘等)相关的历史记录和注册表信息,你可以通过修改注册表来删除相应的记录。以下是一个详细的步骤,帮助你删除这些记录:1. 清理外部设备的历史记录Windows会在注册表中记录插入过的外部设备的相关信息。你可以通过以下步骤......
  • 代码随想录算法训练营第十天(LeetCode232.用栈实现队列;LeetCode225.用队列实现栈;LeetCo
    LeetCode232.用栈实现队列题目链接:用栈实现队列题目链接思路队列是先进先出,栈是先进后出,为了能够让栈可以模拟队列的先进先出,我们设置两个栈,一个栈作为入栈,一个栈作为出栈,我们在入栈存储完数据后,将入栈中的数据全部存储到出栈中,那么从出栈中弹出来的数据就是先进先出的......
  • 面试题精选12-聚集索引和非聚集索引
    聚集索引和非聚集索引包括哪些在Mysql中,聚集索引一般指的是主键。非聚集索引指的是辅助索引、二级索引。聚集索引和非聚集索引优缺点查询速度上,聚集索引优于非聚集索引。插入数据速度上,非聚集索引要比聚集索引要快。聚集索引特点一个表只能有一个聚集索引,通常是主键,但不......
  • MySQL索引
      2.1索引概述2.1.1介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。在无索引情况下,就需要从......
  • MybatisPlus入门(十)MybatisPlus-逻辑删除和多记录操作
    一、Mybatis-Plus多记录操作按照主键删除多条记录List<Long>ids=Arrays.asList(newLong[]{2,3})userDao.deleteBatchIds(ids);示例代码如下:@TestvoidtestDelete(){//删除指定多条数据List<Long>list=newArrayList<>();......
  • LeetCode19 删除链表的倒数第 N 个结点
    LeetCode19删除链表的倒数第N个结点题目链接:LeetCode19描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]思路定义fast指针和slow指针,初始值为虚拟头结点fast首先走n+1步fast和slow同时移动,直......
  • GaussDB云数据库SQL应用系列—索引管理
    一、前言随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了企业面临的重要问题。而数据库索引作为数据库优化的关键手段之一,对于提高数据库性能和查询效率具有重要作用。本文将介绍GaussDB云数据库的索引创建和管理方法,并结合实际应用场景进行分析......
  • GaussDB SQL调优:建立合适的索引
    ​背景GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000+扩展能力,PB级海量存储等企业级数据库特性。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关......