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.