2011-12-29 4 views
6

El manual de MySQL (http://dev.mysql.com/doc/refman/5.1/en/charset-syntax.html) dice:Obtención de MySQL para mostrar la codificación utilizada para una columna en particular

Hay configuraciones predeterminadas para conjuntos de caracteres y colaciones en cuatro niveles: servidor, base de datos, tabla y columna. La descripción en las siguientes secciones puede parecer compleja, pero se ha encontrado en la práctica que el incumplimiento de múltiples niveles conduce a resultados naturales y obvios.

Me gustaría interrogar a una columna CHAR/VARCHAR/TEXT específica y averiguar qué codificación cree que es MySQL. ¿Hay una forma fácil de hacer esto? Sé que puedo usar SHOW CREATE TABLE <table> para ver el conjunto de caracteres predeterminado para la tabla, pero me gustaría hacer lo mismo en el nivel de columna, ya que los documentos sugieren que podría no ser el mismo que el predeterminado de la tabla.

Respuesta

14

Puede hacerlo en la tabla information_schema.COLUMNS.

SELECT 
    COLUMN_NAME, 
    TABLE_NAME, 
    CHARACTER_SET_NAME, 
    COLUMN_TYPE, 
    COLLATION_NAME 
FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = 'your_database_name' 

Ejemplo de salida de una base de datos Gallery2:

+-------------------------+--------------------------+--------------------+--------------+-----------------+ 
| COLUMN_NAME    | TABLE_NAME    | CHARACTER_SET_NAME | COLUMN_TYPE | COLLATION_NAME | 
+-------------------------+--------------------------+--------------------+--------------+-----------------+ 
| g_accessListId   | g2_AccessMap    | NULL    | int(11)  | NULL   | 
| g_userOrGroupId   | g2_AccessMap    | NULL    | int(11)  | NULL   | 
| g_permission   | g2_AccessMap    | NULL    | int(11)  | NULL   | 
| g_itemId    | g2_AccessSubscriberMap | NULL    | int(11)  | NULL   | 
| g_accessListId   | g2_AccessSubscriberMap | NULL    | int(11)  | NULL   | 
| g_id     | g2_AlbumItem    | NULL    | int(11)  | NULL   | 
| g_theme     | g2_AlbumItem    | utf8    | varchar(32) | utf8_general_ci | 
| g_orderBy    | g2_AlbumItem    | utf8    | varchar(128) | utf8_general_ci | 
| g_orderDirection  | g2_AlbumItem    | utf8    | varchar(32) | utf8_general_ci | 
+0

impresionante, eso es exactamente lo que estaba buscando. – grumbler

Cuestiones relacionadas