0% found this document useful (0 votes)
10 views

Mysql For Excel

Uploaded by

Amine Aourasse
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Mysql For Excel

Uploaded by

Amine Aourasse
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 20

How To - Guide to editing MySQL data within

Excel
By: Javier Ignacio Trevino Cobos

In previous posts we have talked about importing data from MySQL to Excel,
exporting data from Excel to a new or existing MySQL table (via the Export
Data or Append Data operations) which are common tasks to be performed
against MySQL tables. In this post we will talk about possibly the coolest feature
in MySQL for Excel: the Edit Data operation. This feature allows the retrieval of
a MySQL table's data to an Excel worksheet so the data can be edited, deleted or
inserted in new rows and those changes saved back to the MySQL database in a
friendly and intuitive way; and more importantly, without the need of writing SQL
queries making it accessible to any kind of user.
You will learn in this guide how to do it and all the details about the Edit Data feature
in MySQL for Excel.
This guide assumes you already have a working MySQL Server instance, Microsoft
Office Excel 2007 or higher and MySQL for Excel installed
If you are already familiar with MySQL for Excel and have a connection to
a MySQL server instance you can skip directly to step 4.
1. Opening MySQL for Excel
In Excel, go to the Data tab located in the Ribbon and click MySQL for Excel at the
far right of the Ribbon.

2. Creating a MySQL Connection (may be optional)


If you have MySQL Workbench installed you will see the same connections that you
have in MySQL Workbench, in that case there may be no need to create a new
connection.
If you still want to create a new connection, in the Welcome Panel click New
Connection, which opens the MySQL Instance Connection dialog. Here you only
need to give your new connection a distinctive Connection Name, specify
the Hostname (or IP address) where the MySQL Serverinstance is running on (if
different than localhost), the Port to connect to and the Username and Password for
the login.
Optionally if you wish to test if your setup is good to go, click Test Connection and
an information dialog will pop-up stating if the connection is successful or errors were
found.
3.Opening a connection to a MySQL Server
To open a pre-configured connection to a MySQL Server you just need to double-
click it.
4. Selecting a MySQL Schema
After opening a connection to a MySQL Server, the Schema Selection Panel is
shown, where you can select the Schema that contains the Tables, Views and Stored
Procedures you want to work with. To do so, you just need to either double-click the
desired Schema or select it and click Next >.
5. Edit MySQL Data
Data can be edited only from MySQL tables (not views since they are a read-only
representation of 1 or more tables, and not procedures since they only return data
calculated from 1 or more tables).
a. Select a MySQL table.
From the list of database objects select the desired MySQL table by clicking it then
click on the Edit MySQL Data action label.
b. Preview the data in the selected table and import it.
The Import Data dialog will display at this point a preview of the data in the selected
table, so you can decide at this point if indeed this is the table you want to edit, if so
you can click on Import or on Cancel to abort the operation and select a different
table.
c. Edit the data in the Excel worksheet in "Edit Mode".
The MySQL table data will be imported to a new Excel worksheet and a floating,
semi-solid, black Edit Data dialog will appear to let you know that
the Excel worksheet is now in "Edit Mode", meaning you can start changing the
values in the Excel cells and MySQL for Excel will keep a record of the changes
which may be later "pushed" back to the MySQL server.
When an Excel worksheet is in "Edit Mode" you will notice the following things:

 The worksheet name is the same as the MySQL table name, if before this

new worksheet is created there is another one with the same name as the

selected MySQL table, the worksheet name will be named like

"Copy n of <table_name>". In the example of the screenshot above if there

was already a worksheet named "actor" the new worksheet would have

been named "Copy 1 of actor".

 The Edit MySQL Data action label gets disabled for the

selected MySQL table, since there can be only 1 active "Edit Session" for

that table.

 The Edit Data dialog only appears if the selected cell(s) are within the

"Editing Range", if an Excel cell outside that range is selected the Edit

Data dialog will disappear.


 Only the Excel cells within the region containing imported data is editable, if

you try to change a value outside that range you will get an error stating that

changes are not permitted, the Excelworksheet is protected to prevent

changes outside the "Editing Range". If for some reason you need to edit

cells outside the "Editing Range" you will need to exit the "Edit Session"

(later on this post about how to exit the "Edit Session").

 The very first row containing the column names (Excel cells with

a gray color) cannot be edited, if you try to change its contents you will get

an error stating those cells are protected.

When you change some table's data, the Excel cells will turn blue indicating they
contain changes that haven't been committed to the database.
New rows can be inserted using the yellow row just below the last row containing
data, when any Excel cell on that yellow row is changed the row will
turn blue (indicating uncommitted data) and the row just below will now
become yellow and ready to accept data for another new table row.
If you want to delete a whole row from the MySQL table you need to delete the row
as you would in Excel, i.e. by right-clicking the row heading and selecting from the
pop-up context menu the Deleteoption.
To commit the changes to the MySQL database just click Commit Changes on the
floating Edit Data dialog. The result of the commit will be displayed next, if an error
occurred the submitted changes will not be applied and an error dialog will be shown
containing the error message. MySQL for Excel creates a transaction for the
submitted changes, so it is committed or rolled-back as a whole. Below you can see
an example of an error thrown when trying to commit.
Note that the error message is stating the number 140 would be a duplicate entry for
the primary key, hinting the problem is at a changed cell with a value of 140. You will
see that any cells that produced an error will be colored in red, so you know you must
correct the errors before attempting a new commit.
This error can only be corrected by reverting that value (140) back to its original one
(142) since changing the value of a primary key is not allowed. If a value is reverted
back to its previous value the Excel cell will be reverted back to its original
background color (white). After the correction a new attempt to commit the changes
to the database can be made. Let's review a scenario where there are further errors
in this change set as you can see below.
In this particular example the error message was thrown because one of the changes
sent to the database included a deleted row, judging by the error message you can
notice there are foreign key constraints preventing the row from being deleted. In
this scenario we need to undo the changes and apply them again without the deleted
row. To undo the changes click Revert Data on the floating Edit Data dialog, from
here there are 2 options to undo changes:

 Refresh Data from DB: undoes any uncommitted changes (blue cells) and

pulls from the database a fresh copy of the table, this is useful when several

persons may be updating the MySQL table's data at the same time since

the contents of the table may have already changed from the time the data

was imported to Excel for edition.

 Revert Changed Data: just undoes any uncommitted changes (blue cells)

reverting the data back to the way it was at the time the data was imported

to Excel for edition.


After the changes are reverted and you think there are no more things that can cause
errors, click Commit Changes again. This time if there were no errors during the
commit you should see an information dialog containing the results of the applied
changes. If warnings were thrown by the server you will see them just below the
operation results.
Notice the committed Excel cells turned green indicating they contain changed data
that has been successfully committed to the MySQL table.
The floating Edit Data dialog contains an option called Auto-Commit, when that
option is enabled all changes will be committed to the MySQL database right after
they are done on the Excel cell(s), without any need to click Commit Changes. This
can be useful when you are connected to a local MySQL database or a remote one
on a fast connection where commits are fast and unnoticeable; otherwise if each
commit lags for a period of time or you prefer to change a set of data and review it
before committing, you may want to keep the option disabled.
If you want to exit the current "Edit Session" you can do it in 2 different ways:

 Right-clicking on any area of the floating Edit Data dialog, and a context

menu will pop-up, clicking Exit Edit Mode will close the Edit Data dialog,

remove any colors from uncommitted, committed or errored-out Excel cells,

and unprotect the Excel worksheet so any Excel cell can be changed

(remember we mentioned the Excel worksheet was protected to disallow

changes outside the "Editing Region"?).


 Deleting the Excel worksheet in "Edit Mode".
The Edit Data dialog can display information about the MySQL table being edited
and the Excelworksheet in "Edit Mode" for that table via a tooltip, this information
may prove useful if you run into errors and wish to report a bug. To display the
information tooltip you need to click the Edit Data dialog and then hover over the
regions of the dialog without a button or label.
As you can see, this is a very powerful and friendly feature that you can use to
change data in a MySQL table without writing any SQL query. In this guide you were
able to learn how to create a new "Edit Session", modify data, add new rows, delete
existing ones and a couple of ways to end the "Edit Session". Hope you found this
guide useful!
Remember that your feedback is very important for us, so drop us a message and
follow us:

 MySQL on Windows (this) Blog

- https://blogs.oracle.com/MySqlOnWindows/

 MySQL for Excel forum - http://forums.mysql.com/list.php?172

 Facebook - http://www.facebook.com/mysql

 YouTube channel: https://www.youtube.com/user/MySQLChannel


Cheers!

You might also like