Mysql 为什么赢了';我的CREATE TABLE语句运行时没有反勾号吗?

Mysql 为什么赢了';我的CREATE TABLE语句运行时没有反勾号吗?,mysql,sql,database,Mysql,Sql,Database,此查询运行: MariaDB > CREATE TABLE `lines` (`line_id` INT UNSIGNED AUTO_INCREMENT, -> `page_id` int(10) UNSIGNED NOT NULL, -> `file_name` varchar(150) NOT NULL, -> `position` varchar(20) NOT NULL, -> PRIMARY KEY(line_id),

此查询运行:

MariaDB > CREATE TABLE `lines` (`line_id` INT UNSIGNED AUTO_INCREMENT,
    -> `page_id` int(10) UNSIGNED NOT NULL,
    -> `file_name` varchar(150) NOT NULL,
    -> `position` varchar(20) NOT NULL,
    -> PRIMARY KEY(line_id),
    -> FOREIGN KEY(page_id) REFERENCES pages(page_id)
    ->     ON DELETE CASCADE
    -> )AUTO_INCREMENT=100;
Query OK, 0 rows affected (0.01 sec)
此查询不运行:

    MariaDB > CREATE TABLE lines (line_id INT UNSIGNED AUTO_INCREMENT,
    -> page_id int(10) UNSIGNED NOT NULL,
    -> file_name varchar(150) NOT NULL,
    -> position varchar(20) NOT NULL,
    -> PRIMARY KEY(line_id),
    -> FOREIGN KEY(page_id) REFERENCES pages(page_id)
    ->     ON DELETE CASCADE
    -> )AUTO_INCREMENT=100; 
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 'lines (line_id INT AUTO_INCREMENT,
page_id int(10) UNSIGNED NOT NULL,
file_name ' at line 1
这是相同的查询,除了反勾号。我很确定这些字段名都不是SQL关键字,所以我很困惑为什么没有反勾号它就不能执行

我可以接受backticks,但我不想使用它们,因为我不想在将来对这个表运行的每个查询都使用它们。我还希望数据库中的语法保持一致;同一数据库中的其他表不需要使用倒勾来运行查询


感谢您的帮助/建议。

是MySQL中的保留字。这就是为什么我们在第一个地方有回跳。不使用它们就像在PHP中不使用引号一样,只是依赖于未定义的常量。

这是一个mysql关键字,与
加载数据填充一起使用。
以下是列表-每个服务器版本都有一个。为了调查这个问题,您可以逐步删除列,直到问题消失为止,而课程表名和列名一样受保留字的影响。。。这是有道理的。我将使用不同的表名。我一定是在浏览保留词列表时错过了它。谢谢你的帮助!(非常快的响应,我会在5分钟内接受下面的答案,如果它允许的话。)