2014-04-14 90 views
0

的問題是:問題創建索引

SQL statement爲屬性CountryCode上創建city tableindex。將該索引命名爲CountryCode_idx

所以我的發言是:

CREATE INDEX city_name_countrycode_idx ON city (name, countrycode); 

但問題是,當我嘗試使用的語句

DROP INDEX city_name_countrycode_idx; 

我得到一個語法錯誤期待ON 砸指數在未來的問題,然後我嘗試發表聲明:

DROP INDEX city_name_countrycode_idx ON city; 

但是我的狀態顯然影響了0行。有人能告訴我,如果我的創建索引語句是正確的,爲什麼我的drop索引語句不工作?

+0

你的第二個'DROP'語法是罰款後遞減表檢查通過。要檢查結構是否已更改,您可以執行SHOW CREATE table city查看它是否存在 –

+0

如果您沒有該表中的數據,則DROP INDEX將返回受影響的0行。 –

回答

0

DROP INDEX city_name_countrycode_idx;
我得到DROP INDEX Syntax語法錯誤期待ON ...

按照文檔:

Name: 'DROP INDEX' 
Description: 
Syntax: 
DROP INDEX index_name ON tbl_name 
    [algorithm_option | lock_option] ... 

algorithm_option: 
    ALGORITHM [=] {DEFAULT|INPLACE|COPY} 

lock_option: 
    LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE} 

DROP INDEX下降從表tbl_name命名index_name索引。

結論

因此放棄在其上創建索引的索引,你必須使用表名。

而你的索引city_name_countrycode_idx被刪除,你必須使用表名稱city上的索引創建。

DROP INDEX city_name_countrycode_idx ON city; 
+0

用戶在他的查詢中使用表名city: DROP INDEX city_name_countrycode_idx ON city; –

+0

@AmanAggarwal:我知道索引名是'city_name_countrycode_idx',表名是'city'。我已經展示了一個關於語法應該如何的例子。我的回答也包括他的索引解決方案。 –

+0

沒有得到解決方案。 這是解決方案 - >「DROP INDEX city_name_countrycode_idx ON city;」 ? –

0

0行受影響意味着數據沒有變化。儘管指數下跌。 可以交叉在刪除索引

感謝