MySQL创建临时表语法错误

时间:2011-07-11 16:44:04

标签: mysql zend-framework mysqli mysql-error-1064

运行MySQL语句时出现语法错误。

我知道可以将反引号添加到tablename中以使其正常工作,但是想知道为什么它会在第一时间发生。

Create temporary table 6514202534e1b20f0d6331 (user_id INT (10)) ENGINE=HEAP;

如果我把它放在Mysql查询浏览器中,它会将表名称视为两个单独的单词 - 6514202534e1b20f0d6331

表名是动态生成的,之前我没有遇到任何问题,所以我想知道为什么它突然停止工作。

1 个答案:

答案 0 :(得分:2)

我认为这是因为服务器(mysql)在这种情况下理解为6514202534 * e ^ 1 INT。

使用`character:

CREATE TEMPORARY TABLE `6514202534e1b20f0d6331` (user_id INT (10)) ENGINE=HEAP;

通过这种方式,MySQL服务器(明确地)理解整个短语是数据库,表或字段而不是值或函数等。

例如`order`是合法的,而只是订单会因无效订单条款而出错。