HOWTO · MySQL
MySQL テーブルから制約を削除する
この記事では、MySQL テーブルから制約を削除する方法を紹介します。
制約は、MySQL 列へのデータ入力を禁止する一連のルールまたは制限です。MySQL のテーブルには、ユーザーが制限を必要とするさまざまな属性または列があります。
適用されたバリアは、MySQL 列セット内のすべてのタイプのデータ値の許容を無効にし、列全体で一貫性を提供します。適用される制約セットの定義で許可されている値のみが有効になります。
MySQL で制約付きのテーブルを作成する
MySQL では、ユーザーはテーブルスキーマとともに列に制約を適用できます。これらの制約には、以下の 2つのタイプがあります。
- 列レベルの制約
- テーブルレベルの制約
制約付きのテーブルを作成するための構文:
Create table tablemname
attributeName1 attributeType constraint,
attributeName2 attributeType constraint,
...
attributeNameN attributeType constraint,
TableLevelConstraint(AttributeName)
上記のコードの構文は、それぞれにテーブルレベルと列レベルの制約を作成する方法を示しています。両方の背後にある考え方は、必要に応じて制約を追加する特権をユーザーに与えることです。
列レベルの制約:non-nullやuniqueなどの制約のタイプは、属性名を定義するときに定義されます。これは、制約名が属性のデータが提供された後のものであることを意味します。テーブルレベルの制約:制約のタイプは、テーブル定義の最後で定義されます。これらの制約は、PrimaryKey``ForeignKeyおよびIndex制約に似ています。
テーブルに対する実際のクエリの前のクエリのリスト:
create table studentPK ( id varchar(255) not null, firstName varchar(255), lastname varchar(255), age integer, primary key (id));
上記のコマンドは、id、firstName、lastName、age などの属性を持つテーブル studentPK を作成します。主キー制約は、テーブルの主キーまたは一意の識別子を作成するために MySQL で定義されたキーワードです。
構文は、引数のパラメーターを使用して、属性を主キーにします。
Describe studentPK;
別のクエリは、作成されるテーブルを記述することです。以下に示す画像は、studentPK テーブルのフィールドに入力される制約を示しています。

MySQL テーブルから制約を削除する
MySQL で DROP 制約を実行するためのクエリ:
Alter table studentPK drop primary key;
上記の構文は、Alter キーワードを使用して studentPk の構文を変更します。制約はテーブルレベルにあるため、テーブルレベルでうまくドロップするのは簡単です。
Alter コマンドは、テーブルのスキーマを変更する場合に最適です。StudentPk テーブルのスキーマを変更するために、同じテーブルから主キーを削除します。
以下は、同じもののローカル実行イメージです。

同様に、同じキーが他のテーブルで使用される場合、別のテーブルの外部キーをドロップすることによってドロップされます。
外部キー制約を作成するためのクエリ:
create table studentDept ( deptid varchar(255) not null, deptName varchar(255), id varchar(255), foreign key(id) references studentPK (id));
上記のクエリは、別のリレーション studentDept テーブルに id として外部キーを作成します。外部キーは、キーワード外部キーを使用して形成されます。
キーワードとともに、2つのテーブルを依存させるために親テーブルをリンクするための references キーワードが必要です。references キーワードは、studentPk テーブルの id フィールドを studentDept テーブルの外部キーとしてバインドします。
以下に示す画像で出力を確認できます。

外部キーが内部で作成されると、そのキーの新しいキー名が作成されます。テーブルを説明し、名前を確認するためのステートメントは次のとおりです。
SHOW CREATE TABLE studentDept;
以下は、MySQL のテーブル構造を確認するためのコンソール出力の図です。

上の画像は、外部キーが studentdept_ibfk_1 という名前で作成されていることを示しています。これで、作成された名前の外部キーを簡単に削除できます。
Alter table studentDept drop foreign key studentdept_ibfk_1;
上記のクエリは、studentDept テーブルから外部キーを削除します。Alter コマンドは、変更がスキーマレベルで行われることを示します。
外部キーは studentDept テーブルから削除されます。describe コマンドを使用して再チェックできます。
外部キーをドロップする前に覚えておくべきポイント:
-
外部キーの名前は事前に必要です。テーブルから制約を削除するには、キーが必要です。
-
キー名を知らずに
dropコマンドを実行すると、以下に示すエラーが発生します。
-
SHOW CREATE TABLEコマンドは必須です。