2009-06-08 18 views
29

Sto provando a creare un indice FULLTEXT su un attributo di una tabella. Mysql restituisceMySQL FULLTEXT index issue

ERRORE 1214: il tipo di tabella utilizzato non supporta gli indici FULLTEXT.

Qualche idea di cosa sto facendo male?

+2

Qual è il tipo di tabella? –

risposta

55

Stai utilizzando il tipo di tabella errato. Mysql supporta alcuni tipi diversi di tabelle, ma i più usati sono MyISAM e InnoDB. MyISAM (in MySQL 5.6+also InnoDB tables) are the types of tables that Mysql supports for Full-text indexes.

Per controllare problema tipo della vostra tabella la seguente query SQL:

SHOW TABLE STATUS 

Guardando il risultato restituito dalla query, trovare il vostro tavolo e il valore corrispondente nella colonna del motore. Se questo valore è qualsiasi cosa eccetto MyISAM o InnoDB, allora Mysql genererà un errore se stai tentando di aggiungere indici FULLTEXT.

Per correggere questo, è possibile utilizzare la query SQL di seguito per cambiare il tipo di motore:

ALTER TABLE <table name> ENGINE = [MYISAM | INNODB] 

Ulteriori informazioni (pensato che potrebbe essere utile): Mysql utilizzando diversi tipi di storage motore per ottimizzare la necessaria funzionalità di tabelle specifiche. Esempio MyISAM è il tipo predefinito per i sistemi operativi (oltre a Windows), SELECTs e INSERTs delle preforme rapidamente; ma non gestisce le transazioni. InnoDB è l'impostazione predefinita per Windows, può essere utilizzata per le transazioni. Ma InnoDB richiede più spazio su disco sul server.

+0

Errore di stampa: MYISAM * –

+0

No, ma l'istruzione ALTER TABLE dice "MYISM". – Henning

+0

Ahh grazie ragazzi ... l'ho corretto. – Cimplicity

7

mysql manual indica che gli indici FULLTEXT possono essere creati solo su tabelle con il motore mylsam.

+0

Questo non è più vero. – jcoffland

5

Stai utilizzando InnoDB? L'unico tipo di tabella che supporta FULLTEXT è MyISAM.

+1

Questo non è più vero. – jcoffland

10

Fino a MySQL 5.6, MyISAM era l'unico motore di archiviazione con supporto per la ricerca full-text (FTS), ma è vero che InnoDB FTS in MySQL 5.6 è sintatticamente identico a MyISAM FTS. Si prega di leggere sotto per maggiori dettagli.

InnoDB Full-text Search in MySQL 5.6

0

parte tabella MyISAM PARTITIONING anche non supportare full-text indice.