“CREATE DATABASE Keys(” MYSQL [duplicate] 行有什么问题

What is the issue in the line "CREATE DATABASE Keys(" MYSQL [duplicate]

提问人:JavaNoob 提问时间:3/29/2023 更新时间:3/29/2023 访问量:24

问:

当我在编写MySQL表创建语句时遇到以下代码错误时:

You have an error in your SQL syntax; it seems the error is around: 'Keys( id INT PRIMARY KEY AUTO_INCREMENT, ip VARCHAR(45) NOT NULL, email VA' at line 1
CREATE TABLE Keys(
  id INT PRIMARY KEY AUTO_INCREMENT,
  ip VARCHAR(45) NOT NULL,
  email VARCHAR(255) NOT NULL
)

据我所知,这段代码遵循所有MySQL准则。 谁能帮我找出这里的错误?

谢谢!

我试图将代码插入到各种 SQL 语法检查器和 linter 中,但在我测试的所有语法检查器中都发现了相同的错误。

mysql 语法错误

评论


答:

0赞 ceejayoz 3/29/2023 #1

KEYS是 MySQl 保留字,因此表名需要转义。(或更改,因此不会在每次进行查询时都出现。

https://dev.mysql.com/doc/refman/8.0/en/keywords.html

CREATE TABLE `Keys`(...)
0赞 Rebel Nii 3/29/2023 #2

该错误是由于使用单词“Keys”作为表的名称引起的。“Keys”是 SQL 中的保留关键字,这意味着它不能用作表名,除非用反引号括起来。要修复此错误,应将表名括在反引号中,如下所示:

创建表

Keys

( id INT 主键AUTO_INCREMENT, ip VARCHAR(45) 不为空, 电子邮件 VARCHAR(255) 不为 NULL );