温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql删除主键的方法

发布时间:2020-08-26 10:16:20 来源:亿速云 阅读:313 作者:小新 栏目:MySQL数据库

这篇文章将为大家详细讲解有关mysql删除主键的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

首先我们来看看删除主键的语法:

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

关于mysql删除主键的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI