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

既存のMySQLテーブルの複数列に設定された複合PRIMARY KEY制約を削除する方法

既存のMySQLテーブルの複数の列に適用されている複合PRIMARY KEY(主キー)制約を削除したい場合は、ALTER TABLEステートメントにDROPキーワードを組み合わせて使用します。構文は非常にシンプルで、以下のように記述します。

ALTER TABLE テーブル名 DROP PRIMARY KEY;

実行例

ここでは、複数の列に対して複合PRIMARY KEYが設定されているテーブル「room_allotment」を例に説明します。まず、DESCRIBEコマンドで現在のテーブル構造を確認してみましょう。

mysql> describe room_allotment;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | 0       |       |
| Name   | varchar(20) | NO   | PRI |         |       |
| RoomNo | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)

「Key」列に「PRI」と表示されていることから、該当する列にPRIMARY KEY制約が適用されていることが確認できます。

それでは、ALTER TABLEステートメントを使用して、この複合PRIMARY KEY制約を削除します。

mysql> Alter table room_allotment DROP PRIMARY KEY;
Query OK, 0 rows affected (0.19 sec)
Records: 0  Duplicates: 0  Warnings: 0

削除後、再度DESCRIBEコマンドでテーブル構造を確認すると、結果は以下のようになります。

mysql> describe room_allotment;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   |     | 0       |       |
| Name   | varchar(20) | NO   |     |         |       |
| RoomNo | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.07 sec)

上記の結果セットを見ると、「Key」列から「PRI」の表示が消えており、複数の列に適用されていた複合PRIMARY KEY制約が正常に削除されたことがわかります。

注意点

PRIMARY KEYを削除すると、対象列の一意性が保証されなくなるため、データの重複が発生する可能性があります。また、主キーの列にAUTO_INCREMENTが設定されている場合は、先にAUTO_INCREMENT属性を解除しないとエラーになる点にも注意が必要です。制約を削除する前には、テーブルの設計や他のテーブルとの依存関係を十分に確認しておくことをおすすめします。

  1. MySQLのテーブルから主キーを削除する方法|DROP PRIMARY KEYの使い方を解説

    MySQLでは主キーを削除できる? 結論から言うと、MySQLでは ALTER TABLE 文に DROP PRIMARY KEY 句を組み合わせることで、テーブルから主キー(プライマリーキー)を削除することが可能です。 基本構文 ALTER TABLE テーブル名 DROP PRIMARY KEY; それでは、実際にサンプルテーブルを作成し、主キーを削除する流れを順番に見ていきましょう。 主キーの削除手順 ステップ1:サンプルテーブルを作成する まず、UserId カラムに主キーを設定したテーブルを作成します。 mysql> CREATE TABLE DemoTable (

  2. MySQLデータベースのテーブルで複合主キーを識別する方法

    MySQLでテーブルに複合主キー(コンポジットプライマリーキー)が設定されているかどうかを確認したい場合、information_schema.KEY_COLUMN_USAGE テーブルに対して集計関数 COUNT(*) を使用する方法が便利です。クエリの結果が1より大きい値を返した場合、そのテーブルには複数のカラムから構成される複合主キーが設定されていることになります。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable1324 -> ( -> StudentId int, ->