Problema con importación de datos a mysql

Hola tengo un problema, tengo una base de datos en Mysql 3.23.32 en windows y estoy alimentándola con archivos planos o excel por el asistente de importación de Microsoft SqlServer, con la mayoría de las tablas lo hace bien pero hay una en particular que tiene un campo que guarda en cada registro una cadena de texto superior a 500 caracteres y no se deja importar he puesto todos los tipos de dato, text, longtext, blob y ninguno funciona y eso que según el manual la capacidad de estos tipos de dato es grandísima. Que hago ayúdame o me van a despedir..
Gracias y si me pueden ayudar que Dios los bendiga.
Fanny

1 Respuesta

Respuesta
1
No podemos permitir que te despidan, veamos, porque no intentas hacerlo de forma manual, ¿por medio de comandos insert...? ¿Ya lo probaste? En realidad a mi no me gusta nada las herramientas de microsoft, a lo mejor microsoft le da formato a lo que inserta y el no lo reconoce, usa el tipo de campo test, haces luego una prueba "MANUAL" con un insert. Si funciona listo, solo agarras el archivo en excel y agregas unas columnas para agregar los comandos SQL no es muy complejo si le aplicas un poquito de lógica. Armas con excel todos los comandos SQL y lo guardas como un plano, y luego usas una herramienta mysql llamada SQLyog o el MYSQL Control Center que lo consigues en la página de mysql (www.mysql.com) (de todas formas verifica que en la página de mysql no haya una herramienta que importe planos, pero prueba manual antes de seguir matándote con el SQLSERVER, y si funciona listo, yo he metido en un campo text hasta casi 3000 caracteres y como si nada.
Cualquier duda fanny
Hola Amigo gracias por tu interés en ayudarme eres muy gentil.. podrías explicarme como es la sintaxis para declarar un campo tipo test, como debo escribirlo en el archivo .sql. y si debo definirle algún tamaño. La verdad no te entendí la parte de incluir comandos SQL en el archivo de excel, ¿puedes darme un ejemplo de como seria esto?
Mil gracias.
Hola, al crear la tabla me queda la sintaxis de este campo que me ha dado problemas así:
Especificaciones text default NULL,
y la tabla se crea bien pero al importar los datos no me funciona..si le quito este campo tanto en la tabla como en el archivo de excel si funciona.. entonces estoy segura que el problema es una cadena de carcarteres tan grande.. me podrías ayudar si no es molestia, a otro tipo de importación que no sea tan complejo como el que me describes es que esta tabla se debe actualizar casi a diario y quita tiempo arreglar el archivo antes de importarlo.. puedes agregarme a tu MSN mi mail es [email protected] para poder ayudarme mejor.. gracias saludes
Mi dios que error tan horrible cometí... es tipo TEXT. Jajajaja de tipo de texto. Esta son las propiedades de un campo tipo TEXT:
TEXT
A BLOB or TEXT column with a maximum length of 65535 (2^16 - 1) characters.
Es decir tiene un tamaño máximo de 65535 ;) creo que es suficiente para lo que quieres :-P.
Ahora bien lo declaras como si fuera un varchar, solo que en vez de varchar hazlo de tipo text.
Con respecto a excel. Lo que digo es que puedes explorar los datos a un plano y luego como ese plano es separado por comas le metes los pedazos de insert que hagan falta para construir un insert por cada registro exportado, y la forma más fácil es editar ese archivo con excel, y decirle que cada valor es una columna y luego insertas columnas y agregas los campos de la base de datos o los insert. Tratare de ilustrartelo mejor...
Tienes este plano:
Nelson;defreitas;21
abres en excel y queda asi.
| Nelson | defreitas | 21 |
insertas el insert con otras celdas:
| insert into Users Values edad = | 21 | where nombre = '| Nelson |' and apellido = '| defreitas |'
Y así haces con cada uno, te digo que uses excel porque puedes mover las celdas y copiar y hacer lo que quieras, luego lo guardas en un .sql y lo ejecutas con mysql.
NOTA: ten cuidado con los espacios en blancos que deja excel. Antes de importar a mysql verifica el plano y que no haya espacio en blancos de más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas