У меня есть что-то вроде этого. Я хочу удалить уникальный индекс для столбцов: long_col_name
и some_other_id
. Как и имя таблицы, и имена столбцов довольно длинные, и все три имеют подчеркивания, как мне удалить этот уникальный индекс?
mysql> SHOW INDEXES FROM long_table_name;
+--------------------------+------------+----------+--------------+----------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------------------------+------------+----------+--------------+----------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| long_table_name | 0 | PRIMARY | 1 | id | A | 32 | NULL | NULL | | BTREE | | |
| long_table_name | 0 | unique | 1 | long_col_name | A | 32 | NULL | NULL | | BTREE | | |
| long_table_name | 0 | unique | 2 | some_other_id | A | 32 | NULL | NULL | | BTREE | | |
+--------------------------+------------+----------+--------------+----------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
3 rows in set (0.00 sec)
Я использую Laravel, но мне просто нужно что-то, что будет работать в Laravel или MySQL.
Уникальный ключ называется так ... long_table_name_long_col_name_some_other_id_unique
?
Как бы я удалил такой индекс в mysql?
ALTER TABLE long_table_name DROP ???;
Или используя Laravel ..
if (Schema::hasColumn('long_table_name', 'long_col_name')) {
Schema::table('long_table_name', function (Blueprint $table) {
$table->dropUnique('long_table_name_long_col_name_some_other_id_unique');
});
}
выдает ошибку ...
SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'long_table_name_long_col_name_some_other_id_unique'; check that column/key exists (SQL: alter table `long_table_name` d
rop index `long_table_name_long_col_name_some_other_id_unique`)
Я получаю ту же ошибку, когда делаю ...
$table->dropUnique(['long_col_name','some_other_id']);
Есть идеи?