MySQL语法错误 - 表名

时间:2015-04-07 14:36:24

标签: mysql

我遇到一个奇怪的问题,mysql不喜欢我的表名。

mysql> DROP TABLE IF EXISTS 6e0OU1QgkU7Pj6ycQF0U_results;
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 '6e0OU1QgkU7Pj6ycQF0U_results' at line 1

mysql> DROP TABLE IF EXISTS 6epGz4xKzfKd6A9e1ASP_results;
Query OK, 0 rows affected (0.00 sec)

mysql>

知道为什么第一个查询在允许第二个查询时出现语法错误?

2 个答案:

答案 0 :(得分:5)

可能是6e0,SQL解析器认为它是科学记数法中的数字:6 * 10 0

答案 1 :(得分:2)

这是因为mysql无法识别表名,因为它以数字MeN

开头
  

标识符可以以数字开头,但除非引用可能不包含   只是数字。

https://dev.mysql.com/doc/refman/5.0/en/identifiers.html

  

建议您不要使用以Me或MeN开头的名称,   其中M和N是整数。例如,避免使用1e作为   标识符,因为诸如1e + 3的表达式是不明确的。根据   在上下文中,它可能被解释为表达式1e + 3或作为   编号1e + 3。

您可以尝试

DROP TABLE IF EXISTS `6e0OU1QgkU7Pj6ycQF0U_results`;