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
コマンドは必須です。
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn