我遇到一个奇怪的问题,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>
知道为什么第一个查询在允许第二个查询时出现语法错误?
答案 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`;