mysql: 設定した unique キーを削除する

作成したテーブルにつけた unique 制約がきつ過ぎる条件で削除したくなった。

1. インデックス名を確認する

テーブル名 abc678_mymod_book というテーブルに設定されたユニークキーのキー名はを確認する

mysql> show index from abc678_mymod_book;
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table             | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| abc678_mymod_book |          0 | PRIMARY  |            1 | id          | A         |          16 |     NULL | NULL   |      | BTREE      |         |
| abc678_mymod_book |          0 | uid      |            1 | uid         | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
| abc678_mymod_book |          0 | uid      |            2 | b_num       | A         |          16 |     NULL | NULL   |      | BTREE      |         |
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
3 rows in set (0.00 sec)

Key_name カラムの値がキー名称になる。

unique(`uid`, `b_id`)

でテーブル作成したら uid という名称で登録されているっぽい。

2. 削除

mysql> alter table abc678_mymod_book drop index uid;

3. 確認


mysql> show index from abc678_mymod_book;
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table             | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| abc678_mymod_book |          0 | PRIMARY  |            1 | id          | A         |          16 |     NULL | NULL   |      | BTREE      |         |
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
1 row in set (0.00 sec)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です