An incomplete list of what your developers would like to know before migrating to MySQL 5.5

A few years ago, I asked to check with me in the long (very long) change history of MySQL 5.5 documentation what are the changes in relation to the SQL syntax.
Chris Calender helped me to retrieve a list of the main changes, thanks again Chris.

Today, I would like to share this list with you.
It is simply a curated transcript of what you might find in the documentation but I’m sure it can help some of you.

INTO clause in nested SELECT statements

Previously, the parser accepted an INTO clause in nested SELECT statements, which is invalid because such statements must return their results to the outer context. As of MySQL 5.5.3, this syntax is no longer permitted and statements that use it must be changed.

Table aliases in DELETE statements

In MySQL 5.5.3, several changes were made to alias resolution in multiple-table DELETE statements so that it is no longer possible to have inconsistent or ambiguous table aliases.

In MySQL 5.1.23, alias declarations outside the table_references part of the statement were disallowed for the USING variant of multiple-table DELETE syntax, to reduce the possibility of ambiguous aliases that could lead to ambiguous statements that have unexpected results such as deleting rows from the wrong table.

As of MySQL 5.5.3, alias declarations outside table_references are disallowed for all multiple-table DELETE statements. Alias declarations are permitted only in the table_references part.


  • DELETE FROM t1 AS a2 USING t1 AS a1 INNER JOIN t2 AS a2;
  • DELETE t1 AS a2 FROM t1 AS a1 INNER JOIN t2 AS a2;


  • DELETE t1 FROM t1 AS a1 INNER JOIN t2 AS a2;

Previously, for alias references in the list of tables from which to delete rows in a multiple-table delete, the default database is used unless one is specified explicitly. For example, if the default database is db1, the following statement does not work because the unqualified alias reference a2 is interpreted as having a database of db1:

  • DELETE a1, a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2 WHERE;

To correctly match an alias that refers to a table outside the default database, you must explicitly qualify the reference with the name of the proper database:

  • DELETE a1, db2.a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2 WHERE;

As of MySQL 5.5.3, alias resolution does not require qualification and alias references should not be qualified with the database name. Qualified names are interpreted as referring to tables, not aliases.

Statements containing alias constructs that are no longer permitted must be rewritten.

New reserved words

There are several new reserved words in 5.5 what were not reserved in 5.1.
So if you are using any of these as table names, etc., then you’ll need to surround them with backticks (`)

  • SLOW



As of MySQL 5.5.3, due to work done for Bug #989, FLUSH TABLES is not permitted when there is an active LOCK TABLES … READ.
To provide a workaround for this restriction, FLUSH TABLES has a new variant, FLUSH TABLES tbl_list WITH READ LOCK, that enables tables to be flushed and locked in a single operation.
As a result of this change, applications that previously used this statement sequence to lock and flush tables will fail:

  • LOCK TABLES tbl_list READ;
  • FLUSH TABLES tbl_list;

Such applications should now use this statement instead:



Fast truncation

As of MySQL 5.5.7, InnoDB always uses the fast truncation technique, equivalent to DROP TABLE and CREATE TABLE.
It no longer performs a row-by-row delete for tables with parent-child foreign key relationships.
TRUNCATE TABLE returns an error for such tables.
Modify your SQL to issue DELETE FROM table_name for such tables instead.

TIMESTAMP display width

In very old versions of MySQL (prior to 4.1), the TIMESTAMP data type supported a display width, which was silently ignored beginning with MySQL 4.1.
This is deprecated in MySQL 5.1, and removed altogether in MySQL 5.5.

The display width is no longer supporter for TIMESTAMP data type in MySQL 5.5

Aliases and wildcards

Aliases for wildcards (as in SELECT t.* AS 'alias' FROM t) are no longer accepted and result in an error.
Previously, such aliases were ignored silently. (Bug #27249)

Scientific notation

In addition to these official parts of the MySQL release notes, Sheeri write a post about floats, doubles ans scientific notation between MySQL 5.1 and MySQL 5.5 :


This list is incomplete because I’m sure you have your own tips to share.

Source :

[Plus] readers choice 2012 : It’s time to vote!

Oh yes, 2012 was an incredible year for the MySQL Community!
That’s why I would like to change the rules this year and I would like to offer you a new survey for this [Plus] reader’s choice 2012.

Community users, bloggers and events made the whole community last year, tell us how you used this community?
It will only take 5 minutes of your precious time, votes will be closed Jan. 31.

Vote for what you used! (with your heart, again…)

What was your most useful blogs in 2012? (Two possible answers)

  • MySQL Performance Blog (Percona Team) (57%, 73 Votes)
  • The MariaDB Blog (MariaDB Team) (17%, 22 Votes)
  • SkySQL Blog (SkySQL Team) (13%, 17 Votes)
  • Xaprb Blog (Baron Schwartz) (9%, 12 Votes)
  • The Data Charmer (Giuseppe Maxia) (9%, 11 Votes)
  • Openark Blog (Shlomi Noach) (6%, 7 Votes)
  • The Scale Out Blog (Robert Hodges) (6%, 7 Votes)
  • Domas Mituzas's blog (5%, 6 Votes)
  • (Henrik Ingo) (4%, 5 Votes)
  • Pythian Blog (Pythian Team) (4%, 5 Votes)
  • Yoshinori Matsunobu's blog (4%, 5 Votes)
  • Dba Square (Maciej Dobrzanski & Piotr Biel) (4%, 5 Votes)
  • Johan Andersson's Cluster and HA Blog (3%, 4 Votes)
  • Chris on MySQL (Chris Calender) (3%, 4 Votes)
  • MySQL[Plus] (Cédric Peintre) (3%, 4 Votes)
  • Ulf Wendel's blog (2%, 3 Votes)
  • Hack MySQL (Daniel Nichter) (2%, 3 Votes)
  • MySQL Optimizer Team Blog (2%, 3 Votes)
  • Oracle's MySQL Blog (Oracle Team) (2%, 3 Votes)
  • MySQL Documents by Rick James (2%, 2 Votes)
  • Sergey Petrunia's blog (2%, 2 Votes)
  • LinuxJedi's /dev/null (Andrew Hutchings) (2%, 2 Votes)
  • Sheeri Dot Com (Sheeri K. Cabral) (2%, 2 Votes)
  • Karlsson on databases and stuff (Anders Karlsson) (2%, 2 Votes)
  • MySQL Fanboy (Mark Grennan) (1%, 1 Votes)
  • varokism (Stéphane Varoqui) (1%, 1 Votes)
  • MySQL Expert (Ronald Bradford) (1%, 1 Votes)
  • Roland Bouman's blog (1%, 1 Votes)
  • mySQL DBA (Dathan Pattishall) (1%, 1 Votes)
  • Mastering MySQL (Mark Leith) (1%, 1 Votes)
  • sqlhjalp (Keith Larson) (1%, 1 Votes)
  • mysqlboy (Andrew Moore) (0%, 0 Votes)
  • Andrew Morgan’s MySQL Cluster Database Blog (0%, 0 Votes)
  • Webyog blog (Webyog Team) (0%, 0 Votes)
  • Racker Hacker (Major Hayden) (0%, 0 Votes)
  • Todd's MySQL Blog (Todd Farmer) (0%, 0 Votes)

Total Voters: 127

Loading ... Loading ...

What was your most useful forum in 2012? (or exchange platform)

  • (41%, 38 Votes)
  • Twitter (18%, 17 Votes)
  • (13%, 12 Votes)
  • (10%, 9 Votes)
  • Facebook (10%, 9 Votes)
  • LinkedIn Groups (7%, 6 Votes)
  • Yahoo Answers (1%, 1 Votes)
  • (0%, 0 Votes)
  • Viadeo Groups (0%, 0 Votes)

Total Voters: 92

Loading ... Loading ...

What was the best MySQL event in 2012?

  • MySQL Conference & Expo (37%, 33 Votes)
  • Percona Live London (30%, 27 Votes)
  • FOSDEM (10%, 9 Votes)
  • Percona Live New York (8%, 7 Votes)
  • MySQL Connect (7%, 6 Votes)
  • Percona Live DC (3%, 3 Votes)
  • MySQL/NoSQL/Cloud Latin America conference (3%, 3 Votes)
  • OSCON (1%, 1 Votes)

Total Voters: 89

Loading ... Loading ...

What would you like to test in 2013? (Two possible answers)

  • Galera Replication (Percona Cluster or MaraDB Cluster) (49%, 60 Votes)
  • MySQL 5.6 (45%, 55 Votes)
  • MariaDB 10 (35%, 43 Votes)
  • Tungsten Replicator (13%, 16 Votes)
  • MySQL 5.5 (Oracle, Percona or MariaDB) (11%, 14 Votes)
  • NoSQL/NewSQL databases (8%, 10 Votes)
  • iPhone 6 (3%, 4 Votes)
  • NDB Cluster (2%, 2 Votes)
  • Other (Leave a comment) (2%, 2 Votes)

Total Voters: 123

Loading ... Loading ...

Have fun in 2013!