J'essaie de créer un index FULLTEXT sur un attribut d'une table. Mysql revient
ERREUR 1214: Le type de table utilisé ne prend pas en charge les index FULLTEXT.
Une idée de ce que je fais mal?
Vous utilisez le mauvais type de table. Mysql prend en charge plusieurs types de tables différents, mais les plus couramment utilisés sont MyISAM et InnoDB. MyISAM (dans MySQL 5.6 + également les tables InnoDB) sont les types de tables que Mysql prend en charge pour les index de texte intégral.
Pour vérifier le type de votre table, lancez la requête SQL suivante:
SHOW TABLE STATUS
En regardant le résultat renvoyé par la requête, recherchez votre table et la valeur correspondante dans la colonne Moteur. Si cette valeur est autre que MyISAM ou InnoDB, alors Mysql générera une erreur si vous essayez d'ajouter des index FULLTEXT.
Pour corriger cela, vous pouvez utiliser la requête SQL ci-dessous pour modifier le type de moteur:
ALTER TABLE <table name> ENGINE = [MYISAM | INNODB]
Informations supplémentaires (jugées utiles): Mysql utilisant différents types de stockage de moteur pour optimiser les fonctionnalités nécessaires de tables spécifiques. Exemple MyISAM est le type par défaut pour les systèmes d'exploitation (en plus de Windows), préforme SELECT et INSERT rapidement; mais ne gère pas les transactions. InnoDB est la valeur par défaut pour Windows, peut être utilisé pour les transactions. Mais InnoDB nécessite plus d'espace disque sur le serveur.
Jusqu'à MySQL 5.6, MyISAM était le seul moteur de stockage prenant en charge la recherche en texte intégral (FTS), mais il est vrai que InnoDB FTS dans MySQL 5.6 est syntaxiquement identique à MyISAM FTS. Veuillez lire ci-dessous pour plus de détails.
Le manuel mysql indique que les index FULLTEXT
ne peuvent être créés que sur des tables avec le moteur mylsam.
Utilisez-vous InnoDB? Le seul type de table qui prend en charge FULLTEXT est MyISAM.
à part la table MyISAM PARTITIONING
ne supporte pas non plus full-text
index.