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

MySQLで主キー(プライマリーキー)を削除する方法をわかりやすく解説

MySQLでテーブルから主キー(プライマリーキー)を削除するには、ALTER TABLE文を使用します。DROP PRIMARY KEY句を組み合わせることで、既存の主キーを簡単に削除できます。

基本構文

ALTER TABLE テーブル名 DROP PRIMARY KEY;

それでは、実際にサンプルテーブルを使って手順を確認していきましょう。

手順1:サンプルテーブルを作成する

まず、主キーを持つテーブルを作成します。

mysql> CREATE TABLE DemoTable
    -> (
    -> StudentId int NOT NULL,
    -> StudentName varchar(20),
    -> StudentAge int,
    -> PRIMARY KEY(StudentId)
    -> );
Query OK, 0 rows affected (0.48 sec)

手順2:テーブル構造を確認する

DESCコマンドを実行して、テーブルの構造を確認してみましょう。

mysql> DESC DemoTable;

実行結果は以下の通りです。

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId   | int(11)     | NO   | PRI | NULL    |       |
| StudentName | varchar(20) | YES  |     | NULL    |       |
| StudentAge  | int(11)     | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

StudentId列のKey列に「PRI」と表示されており、この列に主キーが設定されていることがわかります。

手順3:主キーを削除する

次のクエリを実行して、主キーを削除します。

mysql> ALTER TABLE DemoTable DROP PRIMARY KEY;
Query OK, 0 rows affected (1.70 sec)
Records: 0 Duplicates: 0 Warnings: 0

手順4:削除後のテーブル構造を確認する

再度DESCコマンドでテーブル構造を確認しましょう。

mysql> DESC DemoTable;

実行結果は以下の通りです。

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId   | int(11)     | NO   |     | NULL    |       |
| StudentName | varchar(20) | YES  |     | NULL    |       |
| StudentAge  | int(11)     | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

Key列から「PRI」が消えており、主キーが正常に削除されたことが確認できます。

主キー削除時の注意点

  • AUTO_INCREMENTとの併用: 主キー列にAUTO_INCREMENT属性が設定されている場合、そのままでは削除できません。先にMODIFY句でAUTO_INCREMENTを解除してから削除してください。
  • データの一意性: 主キーを削除すると一意性の制約が失われるため、同じ値のデータが複数登録される可能性があります。業務システムなどでは影響を十分に検討してから実行しましょう。
  • 復元について: 誤って削除した場合は、ADD PRIMARY KEY句で再び主キーを設定し直すことができます。
  1. MySQLで主キー(AUTO_INCREMENT)をリセットする方法

    MySQLで主キー(AUTO_INCREMENT)の値をリセットするには、まずTRUNCATE TABLEでテーブルを空にし、その後ALTER TABLEでAUTO_INCREMENTの開始値を設定します。この記事では、具体的な手順をサンプルコードとともに解説します。 1. サンプルテーブルの作成 まず、AUTO_INCREMENT付きの主キーを持つテーブルを作成します。 mysql> create table DemoTable1929 ( UserId int NOT NULL AUTO_INCREMENT, PRIMARY KEY(UserId) )

  2. MySQLで別テーブルの主キーを外部キーとして参照する方法をわかりやすく解説

    MySQLでは、あるテーブルの主キー(PRIMARY KEY)を、別のテーブルの外部キー(FOREIGN KEY)として参照することで、テーブル間にリレーション(関連付け)を構築できます。これによりデータの整合性が保たれ、参照先に存在しない値の登録を防ぐことができます。外部キー制約を追加する基本構文既存のテーブルに対して外部キー制約を追加するには、ALTER TABLE文を使用します。基本的な構文は以下のとおりです。alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecon