Pregunta

Actualmente tengo una base de datos en MySQL, que me gustaría importar en MS Access.

¿Es posible hacer esto manteniendo intactas todas las relaciones (es decir, sin exportar a .csv o utilizando ODBC)?

Soy un novato en esta área, por lo que cualquier ayuda es muy apreciada.

Gracias.

¿Fue útil?

Solución

Debes resolver dos problemas diferentes:

  1. Crear una base de datos de MS Access vacía con una estructura que coincida con la estructura de la base de datos MySQL.

  2. Extraer los datos de MySQL y cargarlos en MS Access.

Esto no es fácil porque diferentes bases de datos SQL ofrecen diferentes características estructurales, diferentes tipos de datos, etc. Cuanto más complejo sea el uso de MySQL, es más probable que se encuentre con algún problema durante la conversión (por ejemplo, Access no admite activadores en absoluto). Por el contrario, si está utilizando MySQL como un simple almacén de datos, puede encontrar la conversión bastante fácil.

Para obtener una base de datos de MS Access con la misma estructura que su base de datos MySQL, lo mejor que puede hacer es encontrar una herramienta de definición / diagramación de base de datos que ofrezca ingeniería inversa y sea compatible con MySQL y MS Access. Úselo para realizar ingeniería inversa de su base de datos MySQL en un diagrama de base de datos, luego cambie la base de datos subyacente a MS Access y use la herramienta para generar una base de datos.

Consulte Dezign para bases de datos que (en papel, de todos modos) ofrece las funciones que necesitaría haz esto.

Para transmitir los datos, existen varias herramientas. Este tipo de operación se denomina genéricamente ETL (Extraer, Traducir, Cargar).

Otros consejos

¿Te refieres a SQL Server?Un buen punto de partida podría ser consultar SQL Server Integration Services (SSIS), que se puede usar para transferir datos de esa manera.

Google también será útil, consulte el primer resultado:

http://support.microsoft.com/kb/237980

Por cierto, dijiste ".sql" en tu pregunta: un archivo .SQL es un archivo de secuencia de comandos, que puede hacer cualquier cosa, desde crear una base de datos, insertar datos, eliminar tablas, eliminar datos o otorgar los permisos adecuados,llamar a los procedimientos del sistema y reiniciar una máquina, formatear una unidad, enviar un correo electrónico ... Solo como referencia, los archivos .SQL no son el formato de almacenamiento utilizado por SQL Server.

Si bien puede crear un script del esquema de su base de datos en archivos de script a través de algo como SQLyog, encontrará que la sintaxis varía lo suficiente de una base de datos a otra (MySQL a Access, en su caso) que no puede aplicar directamente los scripts.

Con mucho esfuerzo, podría crearse un script de conversión editando el script (quizás automatizado con un programa, dependiendo del tamaño del script resultante).Creo que sería mejor utilizar ODBC para copiar las tablas (y los datos) y luego extraer y volver a aplicar las relaciones del script generado a mano.Lleva mucho tiempo, pero también espero que sea una operación única.

Cuando ambos sistemas son la misma base de datos, hay herramientas que pueden hacer la comparación y la generación de scripts (TOAD para MySQL y RedGate Compare para Microsoft SQL), pero no hacen trabajo de base de datos cruzada (al menos no las que yosoy consciente de).

Si crea un DSN ODBC, puede utilizar TransferDatabase para importar desde su base de datos MySQL.Puede hacerlo manualmente con el comando GET EXTERNAL DATA (o lo que sea en A2007 / A2010) y ver qué tan bien funciona.No obtendrá todos los tipos de datos exactamente correctamente, pero podría hacer algunos masajes y probablemente acercarlos a lo que funcionará mejor.

¿Hay alguna razón por la que no pueda simplemente vincular las tablas MySQL y usarlas directamente?Es decir, ¿por qué necesita importar en Access?

Puede intentar usar esto: Conversión de MS Accessa MySQL con relaciones

Funciona bien y exporta todas las relaciones.

Acceso: ejecutar consulta.Solo asegúrese de adaptar el código SQL, ya que cada RDMS tiene su propia sintaxis (a pesar de que SQL es un estándar ANSI).

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