mysql取消主键_mysql如何删除主键?

当一个表中设置了主键之后,如果想要删除主键了要怎么做?下面本篇文章就给大家介绍MySQL删除主键的方法,希望对你们有所帮助。

5cd2325065fad897.jpg

首先我们来看看删除主键的语法:ALTER TABLE TABLE_NAME DROP PRIMARY KEY;

在MySQL中删除主键要考虑两种情况:

1、主键列不带任何约束,可以直接删除主键的情况

例:mysql> create table test1_3(

-> id int not null primary key,

-> name char(10)

-> );

Query OK, 0 rows affected (0.01 sec)

我们可以直接使用drop来删除主键mysql> alter table test1_3 drop primary key;

Query OK, 0 rows affected (0.02 sec)

Records: 0 Duplicates: 0 Warnings: 0

2、如果是自增(AUTO_INCREMENT属性)的主键

例:mysql> create table test1_2(

-> id int not null auto_increment,

-> name char(10),-> primary key(id)

-> );

Query OK, 0 rows affected (0.00 sec)

mysql> desc test1_2;

+-------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | char(10) | YES | | NULL | |

+-------+----------+------+-----+---------+----------------+

2 rows in set (0.00 sec)

如果直接删除,会报错mysql> alter table test1_2 drop primary key;

输出:ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

#这说明此列是自动增长列,无法直接删除

列的属性还带有AUTO_INCREMENT,那么要先将这个列的自动增长属性去掉,才可以删除主键。mysql> alter table test1_2 modify id int;

Query OK, 0 rows affected (0.03 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table test1_2 drop primary key;

Query OK, 0 rows affected (0.02 sec)

Records: 0 Duplicates: 0 Warnings: 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 备份 windows_windows mysql 自动备份的几种方法

基于之前的文章方法,加入批处理命令即可实现自动备份。只是由于批处理命令中对于备份文件的名字按照时间命名比较特别,所以特别整理一文。1、复制date文件夹备份假想环境:MySQL 安装位置:C:\MySQL论坛数据库名称为:b…

mysql长事务慢查询解决方案_MySQL : 如何监控和处理慢查询与长事务 ?

什么是慢查询、长事务 ?慢查询 是指一条 SQL 的执行时间太长。比如在一个有100w条数据的表中,查询一条数据时未命中索引,从而通过全表扫描查询数据,这个查询会耗时很长。这就是一个 Long SQL 。类似,更新数据、删除数据…

mysql身份验证失败_SMTP身份验证失败PAM-MySQL无法进行身份验证

我正在使用Postfix构建邮件服务器,并设置身份验证以使用Postfixadmin检查数据库设置.我可以通过Courier IMAP进行身份验证,因为它可以正确地验证哈希密码,但我怀疑我的SASL PAM-MySQL SMTP身份验证机制不能.我在/var/log/mail.log中收到这些错误:pam_unix(smtp:auth…

二级数据库access和mysql_二级数据库access和mysql

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

mysql 从库可以写入吗_mysql主从库配置读写分离以及备份

1,什么是读写分离?其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构。一个组从同步集群,通常被称为是…

用程序同步mysql数据库表_初次用Java写了个数据库表同步工具

介绍java 程序编写,真正跨平台。传入一定的参数,即可在相同或不同的数据库间进行表的同步,包括表结构的同步及数据的同步。作业由调度工具进行调度,比如 moia,本项目旨在提供一种数据库间表同步的通用工具。目前项目 d…

公认音质好的耳机品牌_什么品牌蓝牙耳机音质比较好?2020五款HIFI音质蓝牙耳机推荐...

对于蓝牙耳机,绝大多数人的需求都是听音乐,同时也作为一个穿戴的修饰品。基于这些需求,在我们选择蓝牙耳机的时候,就会选择一些外观比较好看的时尚音乐蓝牙耳机,既有时尚的外观,又有较好的音质。那么现在有…

mysql创建表时在extra输入数据_MySQL创建数据表(CREATE TABLE语句)

在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们…

mysql not in报错_mysql从5.7升级到8.0查询报错Expression #2 of SELECT list is not in GROUP BY...

报错信息:Expression #2 of SELECT list is not in GROUP BY clause and containsnonaggregated column ‘sss.month_id’ which is not functionallydependent on columns in GROUP BY clause; this is incompatible withsql_modeonly_full_group_by问题出现的原因…

mysql取消操作系统_Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)...

小弟今天记录一下在Linux系统下面的MySQL的简单使用,如下:服务启动与关闭 启动与关闭 查看版本环境Linux版本:centeros 6.6(下面演示),Ubuntu 12.04(参见文章末尾红色标注字体)MySQL版本:5.1.73查看MySQL服务的启动状态…

python文件下载速度 装饰器_python使用装饰器对文件进行读写操作'及遍历文件目录...

‘‘‘使用装饰器对文件进行读写操作‘‘‘#def check_permission(func):#‘‘‘演示嵌套函数定义及使用‘‘‘#def wrapper(*args,**kwargs):#‘‘‘*args:接收任意多个实参并存入元组中;**kwargs:接收关键字参数显示赋值并存入字典中‘‘‘#if kwargs.get(‘usern…

python日期转化成周数_[转]浅析使用python计算两个日期间隔天数﹑周数和指定若干天后对应的日期等...

>>> import datetime>>> help(datetime)http://docs.python.org/library/datetime.html查看2009年5月31日和2009年2月1日间隔多少天>>> d1datetime.date(2009,05,31)>>> d2datetime.date(2009,02,01)>>> d1-d2datetime.timedelta…

python读取csv画图datetime_python – CSV数据(Timestamp和事件)的时间表绘图:x-label常量...

(这个问题可以单独阅读,但是是续集:Timeseries from CSV data (Timestamp and events))我想通过使用python的熊猫模块(见下面的链接)的时间表表示,可视化CSV数据(从2个文件),如下所示.df1的样本数据:TIMESTAMP eventid0 2017-03-20 02:38:24 11 2017-03-…

建立通讯录python增删改查_Python编程实践之编写电话薄实现增删改查功能

初学Python编程实践,写一个小程序练习一下。主要功能就是增删改查的一些功能。主要用到的技术:字典的使用,pickle的使用,io文件操作。希望对大家学习Python编程实践有所帮助。代码如下:import pickle#studentinfo {ne…

python mysql connection close,Python数据库连接关闭

Using the code below leaves me with an open connection, how do I close?import pyodbcconn pyodbc.connect(DRIVERMySQL ODBC 5.1 driver;SERVERlocalhost;DATABASEspt;UIDwho;PWDtestest)csr conn.cursor()csr.close()del csr解决方案Connections have a close method …

python正向切片_使Python切片正常(正/正向+无无+无负索引+在边界内)

在Python中实现可以用标准Python语法进行切片的类(即负索引、单步执行等)时,有时可以将切片转换为“理智的、向前的切片”,以确定切片的元素。怎样才能以简洁/优雅的形式写出这样一个函数呢?在对于“理智的、向前的切片”,我指的是…

python笔记小白入门_Python 笔记:全网最详细最小白的Class类和实例详解

面向对象最重要的概念就是类(class)和实例(instance),类是抽象,而实例(Instance)则是一个个具体的对象面向对象三大特点:封装、继承和多态class Animal(object):def __init__(self, name):self.name name # 初始化类变量def Dog(self): # 创…

如何安装mysql5.7.2_CentOS 7.2 安装MySQL 5.7

CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变:下载mysql的源wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm安装yum库yum localinstall -y mysql57-community-release-el7-7.n…

java父类调用子类方法_Java 中父类怎么调用子类的方法?

父类能调用子类的方法吗?答:能。怎么做?● 把子类传递到父类的有参构造中,然后调用。● 使用反射的方式调用,你使用了反射还有谁不能调用的?!● 父类调用子类的静态方法。案例展示:p…

java entity转dto_java 使用反射在dto和entity 实体类之间进行转换

public class Utils {/*** 将dto和entity之间的属性互相转换,dto中属性一般为String等基本类型,* 但是entity中可能有复合主键等复杂类型,需要注意同名问题* param src* param target*/public static Object populate(Object src, Object target) {Method[] srcMethods src.ge…