MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

主キーとauto_incrementを削除するMySQLALTER列?


ALTERコマンドを使用して、主キーとauto_incrementを削除できます。構文は次のとおりです-

ALTER TABLE yourTableName DROP PRIMARY KEY,change yourColumnName yourColumnName data type;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table removePrimaryKey
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT,
   -> StudentFirstName varchar(20),
   -> StudentLastName varchar(20),
   -> PRIMARY KEY(StudentId)
   -> );
Query OK, 0 rows affected (0.47 sec)

DESCコマンドを使用してテーブルの説明を確認してください。構文は次のとおりです-

desc yourTableName;

DESCを使用して、テーブル「removePrimaryKey」の説明を確認してください。クエリは次のとおりです-

mysql> desc removePrimaryKey;

以下は出力です-

+------------------+-------------+------+-----+---------+----------------+
| Field            | Type        | Null | Key | Default | Extra          |
+------------------+-------------+------+-----+---------+----------------+
| StudentId        | int(11)     | NO   | PRI | NULL    | auto_increment |
| StudentFirstName | varchar(20) | YES  |     | NULL    |                |
| StudentLastName  | varchar(20) | YES  |     | NULL    |                |
+------------------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

次に、上記の「キーと追加」の列を見てください。 Key列にはPRIがあり、Extra列にはauto_incrementがあります。最初に説明したALTERDROPコマンドを使用して、両方を削除する必要があります-

クエリは次のとおりです-

mysql> alter table removePrimaryKey DROP PRIMARY KEY,change StudentId StudentId int;
Query OK, 0 rows affected (1.79 sec)
Records − 0 Duplicates − 0 Warnings − 0

上記の主キーと自動インクリメントは正常に削除されました。ここで、主キーとauto_incrementがテーブルから削除されているか、次のクエリを使用していないことを確認します-

mysql> desc removePrimaryKey;

以下は出力です-

+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| StudentId        | int(11)     | YES  |     | NULL    |       |
| StudentFirstName | varchar(20) | YES  |     | NULL    |       |
| StudentLastName  | varchar(20) | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
3 rows in set (0.07 sec)

  1. MySQLで初期値と自動インクリメントを設定するにはどうすればよいですか?

    AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。列が「NOTNULL」として宣言されている場合、その列にNULLを割り当てて、一連の数字を生成することができます。 AUTO_INCREMENT列に値が挿入されると、列はその値に設定され、シーケンスもリセットされるため、最大の列値から順番に値が自動的に生成されます。 既存の「AUTO_INCREMENT」列を更新して、「AUTO_INCREMENT」シーケンスもリセットできます。最新の自動生成された「AUTO_INCREMENT;値は、SQLの「LAST_INSERT_ID()」関数を使用するか、C AP

  2. MySQLAUTO_INCREMENTと例

    ATUO_INCREMENTがどのように機能するかを理解しましょう- AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。このステートメントがどのように機能するかを見てみましょう。その前に、以下のクエリを検討してください- クエリ CREATE TABLE tableName (    id MEDIUMINT NOT NULL AUTO_INCREMENT,    name CHAR(30) NOT NULL,    PRIMARY KEY (id) ); INSERT INTO tableNam