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