RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Глава 4. Редактирование данных MySQL в Excel

MySQL for Excel упрощает задачи вставки, удаления и обновления строк таблицы базы данных, используя Microsoft Excel, обеспечивая снимок отобранной таблицы MySQL, который импортируется в рабочий лист Excel. Особенность сеанса редактирования работает с отдельной копией данных. Любые изменения, внесенные в ту копию, переведены на SQL-операторы, которые применяются к отобранной таблице MySQL.

4.1. Обзор сессии редактирования

MySQL for Excel позволяет вам загрузить и отредактировать данные MySQL непосредственно из рабочего листа Microsoft Excel. Изменения немедленно передаются, если опция Auto-Commit включена во всплывающем меню, иначе можно использовать Revert Data или Commit Changes в том же самом всплывающем меню, чтобы отменить или передать изменения данных в MySQL.

Отредактировать данные MySQL из рабочего листа Excel

  1. Запустите Excel, выберите вкладку меню Data и нажмите MySQL for Excel, чтобы открыть панель задач MySQL for Excel.

  2. В ней из области Open a MySQL Connection дважды щелкните по существующей связи, чтобы показать доступные схемы базы данных.

  3. Выберите схему из списка и нажмите Next, чтобы показать все объекты базы данных в схеме.

  4. Выберите таблицу с данными, чтобы отредактировать и затем нажмите Edit MySQL Data. Окно предварительного просмотра показывает отобранные данные и предоставляет возможность определять количество строк к предварительному просмотру.

  5. Нажмите OK, чтобы переместить данные предварительного просмотра в текущий рабочий лист и включить режим редактирования. Посмотрите рис. 4.1 для примера меню режима редактирования (всплывающее окно).

    В режиме редактирования отредактируйте данные в своем рабочем листе и нажмите Commit Changes, чтобы добавить изменения вручную или выберите Auto-Commit, чтобы передать изменения по мере правок. Нажмите Revert Data, чтобы освежить данные из базы данных или отменить правки.

Дополнительные действия режима редактирования:

  • Чтобы остановить режим редактирования, щелкните правой кнопкой мыши по всплывающему меню и выберите Exit Edit Mode.

  • Чтобы возобновить режим редактирования, щелкните по ячейке с данными.

  • Чтобы переместить всплывающее меню, удержите правильную кнопку мыши и тяните меню.

Следующие данные показывают пример таблицы category в примере схемы sakila в режиме редактирования. Цвет фона представляет статус каждой ячейки. Есть четыре разных цвета, которые используются, редактируя данные о таблице и два цвета-помощника.

Рис. 4.1. Редактирование данных в MySQL for Excel

Content is described in the surrounding text.

В предыдущем примере:

  • Зеленая ячейка Drama была изменена и затем передана.

  • Синяя ячейка Gaming была изменена, но не передана.

  • Auto-Commit включен прежде, чем изменить значение 9 на 10 в строке 10 столбца category_id, это произвело ошибку, потому что это добавило бы двойное значение как первичный ключ.

Таблица 4.1. Цвета ячеек в режиме редактирования

ЦветСмысл
БелыйЦвет по умолчанию для всех ячеек. Это оригинальные данные или данные после того, как нажато Refresh from DB.
ЗеленыйЯчейки, которые были успешно переданы.
СинийЯчейки, которые были изменены, но еще не были переданы.
КрасныйЯчейки, которые произвели ошибку при передаче. Диалог ошибки также показан, в то время как передача выполняется.
ОранжевыйЯчейки, которым делали попытку передачи, но она провалилась из-за обнаруженных изменений из внешних источников. Например, иной пользователь внес изменение в поле после того, как это было импортировано в Excel. Это особенность Optimistic Updates .
ЖелтыйЯчейки, которые принимают новые данные. Данные, введенные здесь, вставляются в таблицу MySQL.

4.2. Многократные сеансы редактирования

Дизайн MySQL for Excel не блокирует таблицу, когда вы открываете сеанс редактирования, и данные импортируются. Вместо этого особенность сеанса редактирования полагается на модель, в которой у вас есть своя собственная копия данных (снимок), чтобы изменить. Модель также подразумевает, что у ваших коллег также есть своя собственная копия данных. Когда многократные сеансы редактирования выполняют операции на той же самой таблице в то же время, возможно переписать изменения, внесенные другой сессией.

Чтобы предотвратить непреднамеренную перезапись, когда многократные сеансы редактирования используются, убедитесь, что включена опция Use optimistic updates on all Edit Data sessions (см. вкладку Edit Sessions). Эта опция включена по умолчанию и не должна быть отключена, когда база данных MySQL находится на удаленном хосте, который не гарантирует эксклюзивного доступа к данным.

Оптимистические обновления гарантируют, что WHERE в UPDATE ссылается на все столбцы таблицы. Если какое-либо значение записи было изменено другой сессией, в то время как вы также вносите изменения, запись не найдена и этот запрос UPDATE ничего не сделает, когда вы передадите изменения базы данных. Напротив, с отключенными оптимистическими обновлениями WHERE в UPDATE ссылается на столбцы первичного ключа таблицы.

Чтобы рассмотреть запросы, произведенные MySQL for Excel, выберите опцию Preview SQL statements before they are sent to the server прежде, чем начать ваш сеанс редактирования (см. вкладку SQL Queries ).

С включенными оптимистическими обновлениями непротиворечивые изменения проходят в базу данных, но противоречивые изменения не передаются. Чтобы исправить конфликты, сделайте следующее:

  1. В вашем рабочем листе в режиме редактирования определите местонахождение оранжевых клеток, которые показывают противоречивые данные.

  2. Загрузите новую копию данных из базы данных при нажатии Revert Data в диалоге сеанса редактирования, затем Refresh Data from DB.

  3. Примените изменения противоречивых ячеек снова и затем передайте изменения.

Для получения общей информации о работе с сеансами редактирования, см. раздел 4.1.

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru