MySQL INSERT 语法给出一个奇怪的错误
MySQL INSERT syntax giving a weird error
我在 MySQL 数据库中遇到了一个非常奇怪的问题。我正在尝试将一些值插入到我创建的 table 中,但遇到错误 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会return给我报错:
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);
我知道这是语法错误。但是,更改我的值语法似乎根本不会影响错误,而且我所做的任何事情似乎都无法阻止错误。我已经尝试用我能想到的每种不同类型的引号或刻度来包围每个值,还有初始列。我很困惑,这里发生了什么?
谢谢。
Match
是 MySQL 中的保留关键字。您可以通过将其放在反引号中来解决该错误,例如
INSERT INTO 2017marea (Team, `Match`, Auto, Gear, Kpa, Climb)
VALUES (1721, 1, 3, 5, 5, 1);
我注意到,当您创建 table 时,您将 每个 列名称放在了反引号中。这使您当时看不到错误。如果你这样做了:
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
);
你甚至在创建 table.
之前就会遇到错误
一般来说,您应该避免使用 MySQL 数据库保留关键字、table 和列名。
INSERT语句中的"Match"这个词应该放在``我觉得
我在 MySQL 数据库中遇到了一个非常奇怪的问题。我正在尝试将一些值插入到我创建的 table 中,但遇到错误 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会return给我报错:
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);
我知道这是语法错误。但是,更改我的值语法似乎根本不会影响错误,而且我所做的任何事情似乎都无法阻止错误。我已经尝试用我能想到的每种不同类型的引号或刻度来包围每个值,还有初始列。我很困惑,这里发生了什么?
谢谢。
Match
是 MySQL 中的保留关键字。您可以通过将其放在反引号中来解决该错误,例如
INSERT INTO 2017marea (Team, `Match`, Auto, Gear, Kpa, Climb)
VALUES (1721, 1, 3, 5, 5, 1);
我注意到,当您创建 table 时,您将 每个 列名称放在了反引号中。这使您当时看不到错误。如果你这样做了:
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
);
你甚至在创建 table.
之前就会遇到错误一般来说,您应该避免使用 MySQL 数据库保留关键字、table 和列名。
INSERT语句中的"Match"这个词应该放在``我觉得