Modifica le regole di confronto di una tabella MySQL in utf8_general_cs


8

Ho provato a cambiare la tabella di confronto MySQL in utf8_general_cs ma ho avuto il seguente errore:

mysql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE 'utf8_general_cs';
ERROR 1273 (HY000): Unknown collation: 'utf8_general_cs'

Ho eseguito il comando "SHOW COLLATE" e "utf8_general_cs" non è nei risultati.

Cosa posso fare ora?

Risposte:


13

MySQL non ha regole di confronto Unicode con distinzione tra maiuscole e minuscole, perché è un problema difficile. Alcune lingue raccolgono lettere minuscole prima di lettere maiuscole, mentre altre raccolgono lettere maiuscole prima di lettere minuscole. SQL Server tenta di eseguire la distinzione tra maiuscole e minuscole Unicode, prendendo in considerazione le impostazioni internazionali.

Hai un paio di scelte:


È interessante notare come la distinzione tra maiuscole e minuscole sia un problema difficile. Se mi chiedessi di indovinare, farei una prova che la distinzione tra maiuscole e minuscole è un problema più difficile da risolvere. Puoi approfondire un po 'quello?
— Robo Robok,

La frase successiva descrive il problema. IBM ha una serie di pagine su "regole di confronto sensibili al linguaggio". La distinzione tra maiuscole e minuscole è semplicissima, perché non importa come la lingua ordina i diversi casi.
— David M,

Ancora non capisco. Le lingue ordinano i caratteri per accento, non per caso.
— Robo Robok,

Scusa, sono occupato oggi. Forse questo aiuterà: lmgtfy.com/?q=why+is+unicode+case+sensitive+hard
— David M

Non restituisce nulla, perché la tua affermazione non è vera.
— Robo Robok,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.