Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Migrar de Access a Mysql

Estas en el tema de Migrar de Access a Mysql en el foro de Mysql en Foros del Web. hola bueno esta es version 5.0.45 ahora sigo estos pasos + creo la bd mysql > create bdprueba + con el programa Bullzip MSAccess to ...
  #1 (permalink)  
Antiguo 19/10/2009, 05:33
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Migrar de Access a Mysql

hola

bueno esta es version 5.0.45

ahora sigo estos pasos

+ creo la bd

mysql > create bdprueba

+ con el programa Bullzip MSAccess to MMSQL se me genera este código. Lo guardo con el nombre prueba.txt en C:\MySQL\data\bdprueba

Código mysql:
Ver original
  1. IF NOT EXISTS (SELECT * FROM master.dbo.sysdatabases WHERE name = N'movedb') CREATE DATABASE [movedb]
  2. USE [movedb]
  3.  
  4. IF object_id(N'tabla1', 'U') IS NOT NULL DROP TABLE [tabla1]
  5.  
  6. CREATE TABLE [tabla1] (
  7.   [id] INT NOT NULL IDENTITY,
  8.   [num_r] INT DEFAULT 0,
  9.   [num_o] INT DEFAULT 0,
  10.   [num_p] NVARCHAR(50),
  11.   PRIMARY KEY ([id])
  12. )
  13.  
  14. SET IDENTITY_INSERT [tabla1] ON
  15. GO
  16.  
  17.  
  18. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (1, 2, 10, N'010-0101')
  19. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (2, 3, 11, N'010-0102')
  20. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (3, 4, 13, N'010-0103')
  21. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (4, 2, 12, N'010-0201')
  22. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (5, 1, 20, N'010-0202')
  23. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (6, 3, 10, N'010-0303')
  24. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (7, 5, 25, N'010-0101')
  25. -- 7 records
  26.  
  27. SET IDENTITY_INSERT [tabla1] OFF
  28. GO
  29.  
  30. CREATE INDEX [id] ON [tabla1] ([id])
  31. GO

ahora desde la línea de comandos ejecuto

mysql > cat prueba.txt | mysql bdprueba

esto me genera un error cerca de "cat"

así que mi pregunta es ¿qué estoy haciendo mal? ¿qué debería de cambiar? .... o ¿hay alguna otra manera de migrar?

gracias
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #2 (permalink)  
Antiguo 19/10/2009, 06:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Migrar de Access a Mysql

El problema es que no estás realizando la tarea desde la consola de Linux, sino desde el shell de MySQL, en el cual el comando CAT simplemente no existe.
Tienes que hacerlo desde consola de comandos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/10/2009, 11:32
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Migrar de Access a Mysql

gracias por responder.

yo uso su analogo la ventada de DOS de windows. ¿no es posible hacerlo así?

gracias otra vez tu tiempo
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 21/10/2009, 11:38
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Migrar de Access a Mysql

Hola, puedes utilizar Navicat es super sencillo con ese programa. Crear tu base de datos con su nombre y luego le das a importar en el lado derecho del panel y te aparece una ventana allí seleccionas Access, sigues las instrucciones y listo.
  #5 (permalink)  
Antiguo 21/10/2009, 11:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Migrar de Access a Mysql

Pregunto, ¿no sería útil, en este caso, usar LOAD DATA INFILE?

PD: <offtopic>IsaBelM, muy buena firma, <offtopic>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 24/10/2009, 11:48
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Migrar de Access a Mysql

hola y gracias a ambos por responder

@abimaelrc he usado load data infile y me inserta los datos, pero hay un problema. ayer estuve toda la tarde probando y me daba este error

' ERROR 1366 Incorrect integer value: 'insert into tprueba values (1,'Maria')g' for column 'id' at row 1

asi que me volví loca. esta mañana me di cuenta de cual es el problema.
la tabla es esta
id --> autonumerico incrementable
nombre --> char(40)

ahora pongamos por caso que quiero hacer esta insercción
insert into tprueba values (1, 'Maria')\g

el error viene dado por que en el campo id inserta "insert into tprueba values (1, 'Maria')\g", es decir no ejecuta la sentencia

¿alguna idea del por qué?
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 25/10/2009, 15:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Migrar de Access a Mysql

Una posibilidad es que el script de carga contenga valores que MySQL no acepta, o estructuras de sintaxis que no admite.
¿Podrías postear un ejemplo del contenido del script?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 26/10/2009, 06:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Migrar de Access a Mysql

hola, @gnzsoloyo

si por el scrip, te refieres al contenido del archivo de texto se generó, lo he reducido a esto

insert into tprueba values (1, 'Maria')\g

el sql es correcto pero para asegurarme aún más, lo intenté así

insert into tprueba (id, nombre) values (1, 'Maria')\g

pero tampoco, ¿alguna idea?

gracias
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #9 (permalink)  
Antiguo 26/10/2009, 07:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Migrar de Access a Mysql

Pero ¿que hace \g al final?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 26/10/2009, 07:46
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Migrar de Access a Mysql

Abimaelrc
Cita:
go (\g) Send command to mysql server.
Es como un ; jejeje
Para mas opciones digita help desde la consola de mysql.

isabelM gnzsoloyo se refiere a la sentencia al archivo que estas llamando con load infile.
Eso suena a que tienes entre comillas algo que no debería estar.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 26/10/2009, 08:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Migrar de Access a Mysql

El LOAD DATA INFILE no espera recibir sentencias de INSERT sino una tabla de datos que pueden estar separados por tabulaciones y con las líneas terminadas con fin de línea o salto de párrafo (en cualquier caso, eso se debe indicar en el LOAD DATA), o algun formato a definir, sugiriendo usar .CSV como óptimo.
Si estás intentando ingresar datos desde un script usando LOAD DATA con código de SQL estilo:
Código sql:
Ver original
  1. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (1, 2, 10, N'010-0101')
  2. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (2, 3, 11, N'010-0102')
  3. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (3, 4, 13, N'010-0103')
  4. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (4, 2, 12, N'010-0201')
  5. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (5, 1, 20, N'010-0202')
  6. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (6, 3, 10, N'010-0303')
  7. INSERT INTO [tabla1] ([id], [num_r], [num_o], [num_p]) VALUES (7, 5, 25, N'010-0101')

Por la sintaxis del script que pones, pareciera que se trata de un backup generado en MS SQL Server, lo que no es completamente compatible con MySQL en alguno que otro detalle.

Mi sugerencia es que ajustes el script al estandar de SQL usado en MySQL:

Código sql:
Ver original
  1. INSERT INTO tabla1 (id, num_r, num_o, num_p) VALUES (1, 2, 10, '010-0101');
  2. INSERT INTO tabla1 (id, num_r, num_o, num_p) VALUES (2, 3, 11, '010-0102');
  3. INSERT INTO tabla1 (id, num_r, num_o, num_p) VALUES (3, 4, 13, '010-0103');
  4. INSERT INTO tabla1 (id, num_r, num_o, num_p) VALUES (4, 2, 12, '010-0201');
  5. INSERT INTO tabla1 (id, num_r, num_o, num_p) VALUES (5, 1, 20, '010-0202');
  6. INSERT INTO tabla1 (id, num_r, num_o, num_p) VALUES (6, 3, 10, '010-0303');
  7. INSERT INTO tabla1 (id, num_r, num_o, num_p) VALUES (7, 5, 25, '010-0101');

Entendiendo, por supuesto que el tipo de datos esperado por la tabla, y que es lo que te dice el error es:
Cita:
tabla1 (
id INTEGER,
num_r INTEGER,
num_o INTEGER,
num_p VARCHAR)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 26/10/2009, 08:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Migrar de Access a Mysql

Yo te sugeriría grabar las tablas como .CSV y levantarlas directamente con LOAD DATA usando algo como lo que te da este tutorial: MySQL con Clase
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 26/10/2009, 12:33
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Migrar de Access a Mysql

muchas gracias a todos por vuestro tiempo y sugerencias. intentaré seguirlas y a var que ocurre. ya os diré algo

de nuevo gracias
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #14 (permalink)  
Antiguo 29/10/2009, 07:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Migrar de Access a Mysql

hey gracias a todos por vuestras colaboraciones, finalmente lo logré ayer. y increible hoy acabo de encontrar una herramiento que lo hace, MySQL Migration Toolkit

os reitero mis gracias. un saludo
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:49.