web-dev-qa-db-ja.com

mysqlテーブルから一意のキーを削除する方法

Mysqlテーブルから一意のキーを削除する必要があります。 mysqlクエリを使用してそれを削除する方法。

これを試しましたが、機能していません

alter table tbl_quiz_attempt_master drop unique key;

私を助けてください

ありがとう

46
DEVOPS

すべてのキーには名前が付けられています。次のようなものを使用する必要があります-

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX index_name;

主キーを削除するには、これを使用します-

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX `PRIMARY`;

ALTER TABLE構文

86
Devart

まず削除または更新するには、INDEXの正確な名前(この場合は一意のキー)を知る必要があります。
INDEX名は通常、列名と同じです。 1つのカラムに複数のINDEXが適用されている場合、MySQLは自動的にカラム名に番号を付けて一意のINDEX名を作成します。

たとえば、customer_idという名前の列に2つのインデックスが適用される場合

  1. 最初のインデックスには、customer_id自体の名前が付けられます。
  2. 2番目のインデックスは、customer_id_2などの名前になります。

削除または更新するインデックスの名前を知るには

SHOW INDEX FROM <table_name>

@ Amr が示唆するとおり

インデックスを削除するには

ALTER TABLE <table_name> DROP INDEX <index_name>;
32
ALTER TABLE mytable DROP INDEX key_Name;
12
Uday Sawant

Devart の回答で言及したindex_nameまたは day Sawant で言及したkey_nameを取得する方法がわからない場合答え、次のように取得できます。

SHOW INDEX FROM table_name;

これにより、指定したテーブルのすべてのインデックスが表示されます。その後、削除するインデックスの名前または一意のキーを選択できます。

9
Amr

一意のキーは実際にはインデックスです。 http://codeghar.wordpress.com/2008/03/28/drop-unique-constraint-in-mysql/

4
sam yi

Mysqlにはインデックスを削除する2つの方法があります。最初の方法はGUIです。この方法では、MYSQLのGUIインターフェイスを開いてから、そのデータベースに移動してから、インデックスを削除する特定のテーブルに移動する必要があります。

構造オプションをクリックすると、テーブル構造が表示され、下にテーブルインデックスが表示されます。ドロップオプションをクリックしてインデックスを削除できます

enter image description here

による2番目の方法

ALTER TABLE student_login_credentials DROP INDEX created_at;

ここでstudent_login_credentialsはテーブル名で、created_atは列名です

0