web-dev-qa-db-ja.com

MySQLでこのインデックスを削除する方法は?

この方法で作成されました:

_create table listings(
    id integer unsigned NOT NULL AUTO_INCREMENT,
    accountId  integer unsigned default null,
    title varchar(300) not null,
    country integer unsigned,
    region integer unsigned,
    type integer unsigned,
    price integer,
    unit varchar(20) not null,
    priceUSD decimal(12,2),
    bedrooms integer unsigned,
    thumbnail varchar(100) default null,
    keywords text,
    created datetime,
    deleted boolean default 0,
    fulltext index (keywords),
    PRIMARY KEY (id)
) engine=MyISAM;
_

名前のないフルテキストインデックスを削除する方法は?

名前のないインデックスが:fulltext index (title ,keywords)の場合はどうなりますか?

44
user198729

mysqlクライアントで次のコマンドを実行します。

mysql> SHOW CREATE TABLE listings;

インデックスのシステム割り当て名を含む、テーブルのDDLが表示されます。

34
Bill Karwin
ALTER TABLE listings DROP INDEX keywords;
80
Haim Evgi

ALTER TABLE {your_table_name} DROP INDEX {your_index_name}

OR

DROP INDEX {your_index_name} ON {your_tbl_name}

23
Yagnesh bhalala

SHOW INDEX 構文を使用して、テーブルインデックス情報を取得することもできます。

_SHOW INDEX FROM listings;
_

また、インデックスの名前を指定しない場合、MySQLはインデックス付けされている列に基づいてインデックスの名前を自動的に提供します。

fulltext index (keywords)の場合、MySQLはおそらくインデックスにkeywordsという名前を付けます。

fulltext index (title ,keywords)の場合、MySQLはおそらくインデックスにtitleという名前を付けます。

keywordsまたはtitleという名前のインデックスが既に存在する場合、MySQLが別の名前を付けるため、「最も可能性が高い」と言います。

0
kimbaudi