2

コンマを含むインデックスを持つテーブルがあります(それらはたくさんあります)

....
FULLTEXT KEY `description` (`description`),
  FULLTEXT KEY `description,title` (`description`,`title`), -- <-- HERE
  FULLTEXT KEY `content` (`content`),
  FULLTEXT KEY `content,title` (`content`,`title`)
) ENGINE=MyISAM AUTO_INCREMENT=150296 DEFAULT CHARSET=utf8

私は InnoDB + sphinx に移行しているので、すべての FULLTEXT インデックスを削除したいのですが、これらが問題であることがわかっています。

引用:

DROP INDEX 'content,title' ON `table`
ALTER TABLE `table` DROP INDEX 'content,title'

バックティック: DROP INDEX content,titleON table ALTER TABLE tableDROP INDEXcontent,title

エスケープ: ALTER TABLE articlesDROP INDEXdescription\,title

さまざまな形式のエスケープも、ワイルド文字で LIKE を使用してみました。

実際のエラー:Can't DROP 'description,title'; check that column/key exists

@コードバード

SELECT * FROM information_schema.STATISTICS WHERE TABLE_NAME='articles' AND TABLE_SCHEMA='test' AND INDEX_NAME LIKE 'descri%'\G
*************************** 1. row ***************************
TABLE_CATALOG: NULL
 TABLE_SCHEMA: test
   TABLE_NAME: articles
   NON_UNIQUE: 1
 INDEX_SCHEMA: test
   INDEX_NAME: description,title
 SEQ_IN_INDEX: 1
  COLUMN_NAME: description
    COLLATION: NULL
  CARDINALITY: NULL
     SUB_PART: NULL
       PACKED: NULL
     NULLABLE: YES
   INDEX_TYPE: FULLTEXT
      COMMENT:
*************************** 2. row ***************************
TABLE_CATALOG: NULL
 TABLE_SCHEMA: test
   TABLE_NAME: articles
   NON_UNIQUE: 1
 INDEX_SCHEMA: test
   INDEX_NAME: description,title
 SEQ_IN_INDEX: 2
  COLUMN_NAME: title
    COLLATION: NULL
  CARDINALITY: NULL
     SUB_PART: NULL
       PACKED: NULL
     NULLABLE: YES
   INDEX_TYPE: FULLTEXT
      COMMENT:
2 rows in set (0.00 sec)
4

3 に答える 3

2

root アクセス権があれば、information_schema でインデックス名を更新してから削除してみてください。

UPDATE information_schema.STATISTICS SET INDEX_NAME='to_be_dropped' 
WHERE TABLE_NAME='articles' AND TABLE_SCHEMA='test' 
AND INDEX_NAME LIKE 'descri%'
于 2014-05-01T13:55:10.107 に答える