2009-06-11 9 views

Respuesta

10

Por lo que yo sé, no se puede ejecutar ALTER TABLE comandos en el tablas en information_schema. En su lugar, es probable que desee echar un vistazo a las variabes character_set_*. Se puede ver qué variables se establecen en la que los valores en el servidor MySQL con un comando show variables:

show variables like "character_set_%"; 

La variable que tiene que ver con los meta datos en MySQL, como los information_schema tablas, es la variable character_set_system. Creo que el my.cnf es el lugar correcto para configurarlo.

Hay más información en esta página: UTF-8 for Metadata.

Para las tablas ordinarias, se cambia el conjunto de caracteres de una tabla con un comando ALTER TABLE:

alter table some_table convert to character set utf8; 

Para ello, necesitará el privilegio "alterar".

Puede ver qué privilegios admite su servidor MySQL con un comando show privileges, y puede ver qué privilegios se otorgan a su usuario actual con un comando show grants.

19

Para cambiar el juego de caracteres y la colación para todas las columnas en una tabla existente, utilice:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]; 
+0

lo privilegios Qué necesito para alterar la base de datos del sistema alguna idea –

+0

@MySQLDBA que tendrá el privilegio "alterar", véase la respuesta cristiana –

+1

Asegúrese de que se tiene en cuenta esta advertencia antes de ejecutar un comando 'ALTER' > Si usa ALTER TABLA para convertir una columna de un juego de caracteres a otro, > MySQL intenta mapear los valores de los datos, pero si los juegos de caracteres son incompatibles, puede haber pérdida de datos. [Manual de referencia de MySQL] (http://dev.mysql.com/doc/refman/5.0/en/charset-column.html) –

2
alter table some_table convert to character set utf8; 

impresionante que funcionó muy bien por lo que puedo decir por mí, ahora puedo usar chino en esas tablas !! ¡y puedo quitar todo el utf8_encode() utf8_decode() a través de mi sitio!

Cuestiones relacionadas