这是以这种方式创建的:
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)
?
答案 0 :(得分:79)
ALTER TABLE listings DROP INDEX keywords;
答案 1 :(得分:34)
在mysql
客户端中运行此命令:
mysql> SHOW CREATE TABLE listings;
它将显示表格的DDL,包括索引的系统指定名称。
答案 2 :(得分:20)
$userOrders = Orders::where([
'user_id' => $request->user()->id
])
->select(['id'])
->with('orders.items') // <<<< oops nested relations
->get();
OR
ALTER TABLE {your_table_name} DROP INDEX {your_index_name}
答案 3 :(得分:0)
您还可以使用SHOW INDEX语法获取表索引信息。
SHOW INDEX FROM listings;
此外,当您不为索引提供名称时,MySQL将根据被索引的列自动为索引提供名称。
对于fulltext index (keywords)
,MySQL最有可能将索引命名为keywords
。
对于fulltext index (title ,keywords)
,MySQL最有可能将索引命名为title
。
我说“最有可能”是因为,如果已经有一个名为keywords
或title
的索引,MySQL会用别的名字命名。