Maison > Article > base de données > Comment supprimer la clé primaire dans MySQL ?
Après avoir défini une clé primaire dans une table, que devez-vous faire si vous souhaitez supprimer la clé primaire ? L'article suivant vous présentera comment supprimer la clé primaire dans MySQL. J'espère qu'il vous sera utile.
Tout d'abord, examinons la syntaxe de suppression de la clé primaire :
ALTER TABLE TABLE_NAME DROP PRIMARY KEY;
Il y a deux situations à considérer lors de la suppression d'une clé primaire key dans MySQL :
1. La colonne clé primaire n'a aucune contrainte et la clé primaire peut être supprimée directement
Exemple :
mysql> create table test1_3( -> id int not null primary key, -> name char(10) -> ); Query OK, 0 rows affected (0.01 sec)
On peut directement utiliser drop to supprimer la clé primaire
mysql> alter table test1_3 drop primary key; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0
2. S'il s'agit de la clé primaire d'auto-incrémentation (attribut AUTO_INCREMENT)
Exemple :
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)
Si elle est supprimée directement, une erreur sera rapporté
mysql> alter table test1_2 drop primary key;
Sortie :
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key #这说明此列是自动增长列,无法直接删除
Les attributs de la colonne sont toujours là Avec AUTO_INCREMENT, vous devez d'abord supprimer l'attribut de croissance automatique de cette colonne avant de pouvoir supprimer la clé primaire.
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!