MySQL テーブルから UNIQUE 制約を削除するには、まずテーブルの UNIQUE 制約によって作成されたインデックスの名前を確認する必要があります。 SHOW INDEX ステートメントがこの目的に使用されることがわかっています。 SHOW INDEX ステートメントの結果セットの「key_name」にはインデックスの名前が含まれます。 DROP INDEX ステートメントまたは ALTER TABLE ステートメントを使用して、UNIQUE 制約を削除できるようになりました。 2 つのステートメントの構文は次のとおりです。
DROP INDEX index_name ON table_name; OR ALTER TABLE table_name DROP INDEX index_name;
唯一の制約を持つ 'empl' という名前のテーブルがあるとします。インデックス名は −
mysql> Show Index from empl\G *************************** 1. row *************************** Table: empl Non_unique: 0 Key_name: empno Seq_in_index: 1 Column_name: empno Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 1 row in set (0.02 sec)
で確認できます。一意制約を削除したい場合は、次のクエリを作成できます。 −
mysql> ALTER TABLE empl DROP INDEX empno; Query OK, 0 rows affected (0.26 sec) Records: 0 Duplicates: 0 Warnings: 0
次のクエリの結果セットは、列 'empno' に一意の要素はありません 制約 −
mysql> describe empl; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | empno | int(11) | YES | | NULL | | | F_name | varchar(20) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)
empl クエリから showindex を実行しても、MySQL は以下に示すように空のセットを返します。 −
mysql> Show index from empl; Empty set (0.00 sec)
DROP INDEX ステートメントから結果を取得できます。次に示すように、「empl」テーブル内の UNIQUE 制約を削除します。
以上がMySQL テーブルから一意制約を削除するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。