Why am I getting error when I try to create database with name '5e370227_db'?
I am getting the following error:
mysql> create database 5e370227_db;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5e370227_db' at line 1
When I try to create a database with name '5a370227_db' (e -> a) it is created successfully:
mysql> create database 5a370227_db;
Query OK, 1 row affected (0.00 sec)
Details:
- MYSQL: mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
- Linux Centos 2.6.32-358.el6.x86_64
- logged as root
- database admin
Best Answer
Interesting problem and I think that I've figured it out.
For some reason, MySQL interprets 1e_a_number_ as an exponent - i.e. 10 to the power of something. 1a_a_number has no mathematical meaning, therefore it's not parsed as being a number and accepted as valid. If you notice at the beginning of my experiments below - pure numbers aren't allowed as database/schema names.
Congratulations - it looks like you've spotted a MySQL bug.
Something like this (underscore following number and e) works.
which appears to confirm my conclusion.
This does also - i.e. 1ex works, but 1e1 fails.
=== Experiments leading me to my conclusion ============