我在使用MySQL数据库时遇到了一个非常奇怪的问题。我正在尝试将一些值插入到我创建的表中但面临错误1064.我已经更改了语法的每一部分。这是我在终端上输入的字样:
mysql -u root -p
CREATE DATABASE robotics
USE robotics
CREATE TABLE `2017marea` (
`Team` INT(25) NOT NULL,
`Match` INT(25) NOT NULL,
`Auto` INT(25) NOT NULL,
`Gear` INT(25) NOT NULL,
`Kpa` INT(25) NOT NULL,
`Climb` INT(25) NOT NULL
);
INSERT INTO 2017marea (Team, Match, Auto, Gear, Kpa, Climb) VALUES (1721, 1, 3, 5, 5, 1);
此时,MySQL会给我一个错误:
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 'Match, Auto, Gear, Kpa, Climb) VALUES (1721, 1, 3, 5, 5, 1);
我知道这是语法错误。但是,更改我的值语法似乎根本不会影响错误,而且我所做的一切似乎都没有停止错误。我试过围绕我能想到的每种不同类型的引号或刻度中的每个值,以及初始列。我很困惑,这里发生了什么?
感谢。
答案 0 :(得分:3)
Match
是MySQL中的保留关键字。您可以通过将其置于反引号中来解决错误,例如
INSERT INTO 2017marea (Team, `Match`, Auto, Gear, Kpa, Climb)
VALUES (1721, 1, 3, 5, 5, 1);
我注意到,在创建表格时,您将每个列名称放在反引号中。这使您无法在当时看到错误。如果你这样做了:
CREATE TABLE `2017marea` (
Team INT(25) NOT NULL,
Match INT(25) NOT NULL,
Auto INT(25) NOT NULL,
Gear INT(25) NOT NULL,
Kpa INT(25) NOT NULL,
Climb INT(25) NOT NULL
);
在创建表格之前,你会遇到错误。
通常,您应该避免对数据库,表和列名称使用MySQL保留关键字。
答案 1 :(得分:2)
INSERT语句中的“匹配”一词应放在“我认为
”中