运行MySQL语句时出现语法错误。
我知道可以将反引号添加到tablename中以使其正常工作,但是想知道为什么它会在第一时间发生。
Create temporary table 6514202534e1b20f0d6331 (user_id INT (10)) ENGINE=HEAP;
如果我把它放在Mysql查询浏览器中,它会将表名称视为两个单独的单词 - 6514202534e1
和b20f0d6331
。
表名是动态生成的,之前我没有遇到任何问题,所以我想知道为什么它突然停止工作。
答案 0 :(得分:2)
我认为这是因为服务器(mysql)在这种情况下理解为6514202534 * e ^ 1 INT。
使用`character:
CREATE TEMPORARY TABLE `6514202534e1b20f0d6331` (user_id INT (10)) ENGINE=HEAP;
通过这种方式,MySQL服务器(明确地)理解整个短语是数据库,表或字段而不是值或函数等。
例如`order`是合法的,而只是订单会因无效订单条款而出错。