Импорт .sql в MS Access с использованием OBDC

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

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

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

Спасибо.

6 ответов

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

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

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

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

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

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

Чтобы перекачивать данные, существует множество инструментов. Этот тип операций в общем случае называется ETL (Extract, Translate, Load).


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

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

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

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


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

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


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

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

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


Если вы создаете DSN ODBC, вы можете использовать TransferDatabase для импорта из своей базы данных MySQL. Вы можете сделать это вручную с помощью команды GET EXTERNAL DATA (или что бы то ни было в A2007/A2010) и посмотреть, насколько она работает. Он не будет правильно отображать все типы данных, но вы можете немного массировать и, скорее всего, приблизитесь к тому, что будет работать лучше всего.

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


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

licensed under cc by-sa 3.0 with attribution.