Доступ не импортирует отношения для связанных таблиц MySQL

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

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

Программное обеспечение, которое я использую: MySQL версии 5, Microsoft Office 2013, Формат файла доступа: .accdb

2 ответа

Хотя верно, что ограничения внешнего ключа MySQL не отображаются по умолчанию на вкладке "Отношения" в Access, эти ограничения все еще существуют в MySQL и по-прежнему применяются для связанных таблиц.

Например, скажем, у меня есть две таблицы MySQL, [клиенты] и [заказы] с ограничением внешнего ключа в [заказах]. Если я ссылаюсь на эти таблицы в Access, и я пытаюсь вставить строку в мою связанную таблицу [orders], где [customerID] не соответствует [customerID] в моей связанной таблице [клиентов], вставка не выполняется:

ODBC - inertted в связанной таблице "заказы" не удались.

[MySQL] [ODBC 5.2 (w) Драйвер] [mysqld-5.5.29-0ubuntu0.12.04.2] Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется (`zzzTest`,` orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (` customerID`) ССЫЛКИ `customers` (` customerID`)) (# 1452)

Вы можете перейти на вкладку "Отношения" в Access и создать отношения "Access-side" для таблиц MySQL...

... но обратите внимание, что параметры "Enforce Referential Integrity" выделены серым цветом, потому что это функция настройки базы данных на сервере, а не в Access. Так что, действительно, единственные преимущества, которые могут предложить отношения "Access-side" :

  • "документация" отношений (которую вы можете получить из диаграммы базы данных, сгенерированной в базе данных MySQL) и

  • "автоматический" соединяется между связанными таблицами в конструкторе запросов Access (что также может произойти без отношений [Access], если в таблицах есть столбцы с тем же именем).

Вам решать, стоит ли создавать эти отношения "Access-side" .


Так как это перекрестные базы данных, возможно, придется воссоздавать их вручную. Проверьте этот Импорт .sql в MS Access с помощью OBDC

licensed under cc by-sa 3.0 with attribution.