Вопрос

В настоящее время у меня есть база данных в MySQL, которую я хочу импортировать в MS Access.

Можно ли сделать это, сохранив все отношения неизменными (т.е. без экспорта в .csv или с помощью ODBC)?

Я новичок в этой области, поэтому приветствую любую помощь.

Спасибо.

Это было полезно?

Решение

Вам нужно решить две разные задачи:

  1. Создание пустой базы данных MS Access со структурой, соответствующей структуре базы данных MySQL.

  2. Извлечение данных из MySQL и загрузка их в MS Access.

Это непросто, поскольку разные базы данных SQL предлагают разные структурные особенности, разные типы данных и т. д. Чем сложнее вы используете MySQL, тем больше вероятность того, что вы столкнетесь с какой-либо проблемой во время преобразования (например, Access вообще не поддерживает триггеры). И наоборот, если вы используете MySQL в качестве простого хранилища данных, вы можете найти преобразование довольно простым.

Чтобы получить базу данных MS Access с той же структурой, что и ваша база данных MySQL, лучше всего найти инструмент для определения / построения диаграмм базы данных, который предлагает обратный инжиниринг и поддерживает как MySQL, так и MS Access. Используйте его для преобразования базы данных MySQL в схему базы данных, затем измените базовую базу данных на MS Access и используйте инструмент для создания базы данных.

Ознакомьтесь с Dezign For Databases , который (в любом случае на бумаге) предлагает функции, которые вам понадобятся сделай это.

Для перекачки данных существует любое количество инструментов. Этот вид операции обычно называется ETL (извлечение, перевод, загрузка).

Другие советы

Вы имеете в виду SQL Server?Хорошей отправной точкой может быть проверка служб интеграции SQL Server (SSIS), которые можно использовать для такой передачи данных.

Google тоже будет полезен, посмотрите первый результат:

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

Между прочим, вы сказали ".sql" в своем вопросе: файл .SQL - это файл сценария, который может делать что угодно: создавать базу данных, вставлять данные, удалять таблицу, удалять данные или иметь соответствующие разрешения,вызовите системные процедуры и перезагрузите компьютер, отформатируйте диск, отправьте электронное письмо ... Просто для справки, файлы .SQL не являются форматом хранения, используемым SQL Server.

Хотя вы можете записать схему своей базы данных в файлы сценариев с помощью чего-то вроде SQLyog, вы обнаружите, что синтаксис достаточно различается от базы данных к базе данных (в вашем случае от MySQL to Access), что вы не можете напрямую применять сценарии.

С большими усилиями можно создать сценарий преобразования путем редактирования сценария (возможно, автоматизированного с помощью программы, в зависимости от размера результирующего сценария).Я думаю, вам было бы лучше использовать ODBC для копирования таблиц (и данных), а затем вручную извлекать и повторно применять отношения из сгенерированного скрипта.Это займет много времени, но, надеюсь, это будет одноразовая операция.

Когда обе системы являются одной и той же базой данных, существуют инструменты, которые могут выполнять сравнение и генерацию скриптов (TOAD для MySQL и RedGate Compare для Microsoft SQL), но они не выполняют перекрестную работу с базами данных (по крайней мере, не те, которые яв курсе).

Если вы создаете ODBC DSN, вы можете использовать TransferDatabase для импорта из базы данных MySQL.Вы можете сделать это вручную с помощью команды ПОЛУЧИТЬ ВНЕШНИЕ ДАННЫЕ (или что-то еще в A2007 / A2010) и посмотреть, насколько хорошо это работает.Это не приведет к точному отображению всех типов данных, но вы можете немного помассировать и, вероятно, приблизить его к тому, что будет работать лучше всего.

Есть ли причина, по которой вы не можете просто связать таблицы MySQL и использовать их напрямую?То есть зачем вообще нужно импортировать в Access?

Вы можете попробовать это: Преобразование MS Accessв MySQL с отношениями

Отлично работает и экспортирует все отношения.

Доступ: выполнить запрос.Просто убедитесь, что вы адаптировали код SQL, поскольку каждая RDMS имеет свой собственный синтаксис (несмотря на то, что SQL является стандартом ANSI).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top