一意性制約を使用すると、データベーステーブル内のレコードの一意性を強制し、データベースの整合性を維持できます。 MySQLDROPINDEXコマンドを使用してMySQLテーブルから一意の制約を削除する方法は次のとおりです。 MySQLの一意のキーを削除するためにも使用されます。
MySQLの一意性制約とは何ですか?
テーブルの一意性制約は、テーブル内の各レコードを一意に定義する1つ以上のフィールドの組み合わせです。これらのフィールドには、フィールド値の組み合わせが一意である限り、null値を含めることができます。
ボーナスリード:DROP FOREIGN KY CONSTRAINT
MySQLで一意性制約を削除する方法
MySQLで一意性制約を削除する手順は次のとおりです。 MySQL DROP INDEXクエリを使用して、テーブルから既存のインデックスを削除します。
MySQLDROPINDEXコマンドの構文は次のとおりです
DROP INDEX constraint_name ON table_name
[algorithm_option | lock_option];
上記のクエリでは、 constraint_name は制約の名前であり、 table_name データベーステーブル名です。
注意 、DROPINDEXまたはDROPUNIQUE CONSTRAINTのどちらを使用する場合でも、DROPINDEXクエリを使用する必要があります。
ボーナスリード:MySQL DROP DATABASE
2つのオプションの引数を指定することもできます– alarmithm_option およびlock_option。
alarmithm_option デフォルト、インプレース、コピーの3つの値のいずれかを持つことができます。引数に応じて、MySQLは異なるアルゴリズムを使用して一意の制約を削除します。
その構文は
ですALGORITHM [=] {DEFAULT|INPLACE|COPY}
- デフォルト–これは alarmithm_optionを使用しない場合と同じ効果があります 引数
- copy –制約を削除する必要があるテーブルがコピーされ、コピーテーブルからインデックスが削除されます。この間、INSERTやUPDATEなどの同時操作は許可されません。
- インプレース–この場合、テーブルは制約なしにインプレースで再構築されます。このオプションでは同時操作が可能ですが、実行中にメタデータロックが適用されます。
lock_optionによって異なります 制約が削除されている間、MySQLはテーブルへの読み取り/書き込みアクセスをロック/ロックしません。 lock_option 次の構文があります
LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
4つの値を取ります:
- デフォルト–選択したアルゴリズムで最大の同時実行性を許可します。サポートされている場合は、読み取りと書き込みの両方を同時に実行できます。そうでない場合は、同時読み取りのみを許可します。それもサポートされていない場合は、排他的アクセスが強制されます。
- none –サポートされている場合は、読み取りと書き込みを同時に行うことができます。それ以外の場合、MySQLはエラーを出します。
- 共有–共有オプションがサポートされている場合、同時読み取りは可能ですが、同時書き込みはできません。
- 排他的–このオプションは排他的アクセスを強制します
ボーナスリード:MySQL DROP COLUMN
MySQL DROPUNIQUECONSTRAINTの例
一意性制約のある次のテーブルがあるとします。
mysql> create table orders(order_id int primary key, order_date date, product varchar(255), sale int, constraint name unique (product) );
一意の制約を削除するSQLクエリnameは、次のとおりです。 テーブルから注文 。
mysql> DROP INDEX name ON orders;
ボーナスリード:MySQL DROP TABLE
MySQL DROPPRIMARYKEYインデックス
主キーはテーブルの一意性制約の例でもあるため、テーブルの順序で主キー制約を削除する構文は次のとおりです。
mysql> DROP INDEX `PRIMARY` ON orders;
この場合、フィールド名を使用する代わりに、主キーフィールドを`PRIMARY`と呼びます。
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。