MySQL error: “Column 'columnname' cannot be part of FULLTEXT index”

前端 未结 3 1070
攒了一身酷
攒了一身酷 2021-02-07 15:59

Recently I changed a bunch of columns to utf8_general_ci (the default UTF-8 collation) but when attempting to change a particular column, I received the MySQL error:

<         


        
相关标签:
3条回答
  • 2021-02-07 16:38

    Just to add to Thomas's good advice: And to sort things out in PHPMyAdmin you have to change the characterset for all columns AT THE SAME TIME.

    Just wasted half a day trying again and again to change the columns one at a time and continually getting the error message about the FULLTEXT index.

    0 讨论(0)
  • 2021-02-07 16:38

    For DBeaver/database tool users.

    When you use interface to modify more than one column, the tool generate commands like this :

    ALTER TABLE databaseName.tableName MODIFY COLUMN columnName1 text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
    ALTER TABLE databaseName.tableName MODIFY COLUMN columnName2 varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
    

    This is not working because you must modify the charsets at the same time.

    So, you have to change it manually, in one command :

    ALTER TABLE databaseName.tableName 
    MODIFY COLUMN columnName1 text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
    MODIFY COLUMN columnName2 text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
    

    utf8 or utf8mb4 ? See here.

    0 讨论(0)
  • 2021-02-07 16:47

    Oops, so I have found the answer to my problem:

    All columns of a FULLTEXT index must have not only the same character set but also the same collation.

    My FULLTEXT index had utf8_unicode_ci on one of its columns, and utf8_general_ci on its other columns.

    0 讨论(0)
提交回复
热议问题