Pregunta

Tengo una base de datos mysql que contiene contenido como un blob, por cualquier razón que los desarrolladores eligieron usar un blob está fuera de mi control. ¿Es posible convertir los datos a texto y el tipo de datos a texto?

¿Fue útil?

Solución

¿Has probado el comando alter table?

alter table mytable change mycolumn mycolumn text; 

de http://forums.mysql.com/ read.php? 103,164923,167648 # msg-167648 parece que puedes usar CAST.

puede crear una nueva columna (TEXTO) y luego completarla con un comando de actualización:

update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8) 

Otros consejos

La conversión del campo de blob a texto trunca todos los caracteres > 127. En mi caso tenemos muchos caracteres europeos, así que esta no era una opción. Esto es lo que hice:

  1. Crear campo temporal como texto
  2. Copie el campo de blob en el campo temporal: ACTUALIZAR tbl SET col_temp = CONVERT (col USING latin1); En este caso, mi blob contenía caracteres codificados latin1
  3. Convertir campo real a tipo de datos de texto
  4. Copiar temp al campo real
  5. Eliminar columna temporal

No es exactamente sencillo, pero funcionó y no hubo pérdida de datos. Estoy usando la versión: '5.1.50-community'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top