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

地址:https://www.php.cn/mysql-tutorials-418313.html

相关推荐

人渣SCUM哪里枪多 游戏刷枪点位置介绍
365手机卫士

人渣SCUM哪里枪多 游戏刷枪点位置介绍

📅 06-15 👁️ 5672
福田区人力资源局附近的热门地点
beat365在线体育打不开

福田区人力资源局附近的热门地点

📅 12-21 👁️ 3099
天猫分期购怎么开通?入口在哪里?
beat365在线体育打不开

天猫分期购怎么开通?入口在哪里?

📅 10-05 👁️ 1269