О Компании Как Купить Скидки Продукты Услуги Тех.Поддержка Вопросы Карта Сайта

Проверка результатов миграции MS Access в MySQL

Прежде всего необходимо понять, какие объекты должны быть проверены в целевой базе данных после завершения миграции:

  • Определения таблиц
  • Данные
  • Индексы
  • Отношения между таблицами (внешние ключи в MySQL)
  • Запросы (представления в MySQL)

Определения таблиц

В MS Access все таблицы перечислены в секции "Таблицы" в левой панели главного окна. Щелкните правой кнопкой мыши по таблице, определение которой нужно изучить, и выберите пункт меню "Конструктор". Появится окно, содержащее определения всех столбцов таблицы. MySQL позволяет просматривать определение таблицы следующим образом:

  • В консоли клиента mysql запустите SQL-инструкцию DESC table_name
  • В phpMyAdmin выделите таблицу в левой панели и перейдите на вкладку "Структура"

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

MS Access MySQL
Text VARCHAR(n), где n это максимальная длина поля
Memo TEXT
Byte TINYINT UNSIGNED
Integer SMALLINT
Long INT
Memo TEXT
Single FLOAT
Double DOUBLE
Currency DECIMAL(13,4)
AutoNumber INT AUTO_INCREMENT
Date/Time DATE или TIME или DATETIME в зависимости от данных, содержащихся в поле
Yes/No BIT(1) или BOOL
Ole Object LONGBLOB
Hyperlink VARCHAR(255)
Replication ID (guid) VARCHAR(38)

Данные

Точность преобразования данных может быть подтверждена визуальным сравнением определенного фрагмента из таблиц MS Access и MySQL. MS Access позволяет просматривать таблицу, дважды щелкнув ее имя на левой панели. В MySQL вы можете сделать это следующим образом:

  • В консольной версии клиента mysql выполните SQL-запрос
    SELECT * FROM table_name LIMIT start_record, number_of_records
    
  • В phpMyAdmin выделите таблицу в левой панели и перейдите на вкладку "Обзор"

Кроме того, необходимо проверить, что все записи были преобразованы, путем сравнения количества строк для каждой таблицы в исходных и целевых базах данных. Microsoft Access указывает количество записей в нижней части окна просмотра таблицы. MySQL позволяет получить количество строк в таблице следующим образом:

  • В консольной версии клиента MySQL запустите инструкцию
    SQL SELECT COUNT (*) FROM table_name;
    
  • В phpMyAdmin выделите таблицу в левой панели, перейдите на вкладку "Обзор", и количество записей будет отображаться в строке состояния. Отображение строк ... (number_of_records total ...) в верхней части окна.

Индексы

MS Access позволяет просматривать индексы таблицы в режиме "Конструктор" (подробности см. В разделах "Определения таблиц" выше). Нажмите кнопку "Индексы" на панели инструментов MS Access, и индексы будут отображаться в новом окне со всеми атрибутами.

В MySQL вы можете перечислить индексы следующим образом:

  • В консольной версии клиента mysql запустите SQL-инструкцию
    SHOW INDEXES FROM table_name;
    
  • В phpMyAdmin выделите таблицу на левой панели, перейдите на вкладку "Структура", и все индексы будут перечислены сразу после структуры таблицы.

Отношения между таблицами (внешние ключи в MySQL)

В Microsoft Access все отношения между таблицами можно рассматривать как диаграммы. Выделите таблицу в левой панели, перейдите в меню "Конструктор" и нажмите кнопку "Отчет по схеме данных" на панели инструментов. Дважды щелкните по любому индикатору отношения (строка между двумя таблицами), чтобы просмотреть его свойства.

MySQL позволяет просматривать информацию о внешних ключах следующим образом:

  • В консольной версии клиенте MySQL запустите инструкцию
    SQL SHOW CREATE TABLE `имя таблицы`
    
  • В phpMyAdmin выделите таблицу в левой панели, перейдите на вкладку "Структура" и нажмите ссылку "Связь" ниже определения таблицы.

Запросы (представления в MySQL)

Первым шагом является извлечение запросов MS Access в форме SQL SELECT-операторов. Это можно сделать, выполнив следующие шаги:

  • Откройте запрос в режиме проектирования с помощью кнопки "Просмотр дизайна" или щелкните правой кнопкой мыши запрос и выберите пункт "Дизайн".
  • Выберите "Вид" в меню и выберите "SQL View"

MySQL может извлекать информацию о представлениях, используя запрос:

SHOW FULL TABLES IN database_name WHERE TABLE_TYPE LIKE 'VIEW';

К сожалению, нет другого способа проверить правильность преобразования запросов, кроме сравнения SELECT-операторов каждого запроса MS Access и соответствующего представления MySQL вручную, с учетом различий в синтаксисе и наборах встроенных функций этих СУБД.