mysql - 尝试创建名为 : 9e1617bafr1_1 的数据库时出现语法错误

标签 mysql syntax-error

昨天我偶然发现了一个奇怪的问题。

我有一个 PHP 脚本,它根据一些输入为我创建 mysql 数据库。

当脚本尝试生成名为“9e1617bafr1_1”(不带引号)的数据库时,我收到此错误“MySQL 错误 1064:您的 SQL 语法有错误”。

查询是CREATE DATABASE IF NOT EXISTS 9e1617bafr1_1

尝试在 https://de.piliapp.com/mysql-syntax-check/ 上执行它时,我也收到错误和 http://sqlfiddle.com/

我通过在数据库名称前后使用反引号解决了这个问题,但我仍然想知道为什么我首先会收到此错误,因为“9d1617bafr1_1”、“9f1617bafr1_1”等的创建工作完美。

不幸的是,我在互联网上没有找到任何关于这种行为的有用信息,因为我对此非常好奇,我想问是否有人知道这是否是保留字或者它是否以任何方式违反了 SQL 标准?

最佳答案

9e1617bafr1_1 被解析为数字 (9e1617) 后跟字符串 (bafr1_1)。您的其他尝试“9d1617bafr1_1”和“9f1617bafr1_1”不以科学记数法开头,因此它们不会以这种方式进行解析。

关于mysql - 尝试创建名为 : 9e1617bafr1_1 的数据库时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40551269/

相关文章:

mysql - 计入 SELECT DISTINCT 查询?

mysql - mysql 中的运行平均值

MySQL一对多加入Group By只返回一个观察

php - php语法错误问题

java - 创建接收多态输入的方法

Erlang 编译器不断抛出奇怪的语法错误

iphone - 问题UIImage initWithData

php - 在 PHP 中从 SQL 格式化时间戳的最简单方法是什么?

mysql 无法更改 session 变量 group_concat_max_len

python - 使Python应用程序打开网页的命令