2017-03-14 6 views
0

MySQL 데이터베이스에서 매우 이상한 문제가 있습니다. 내가 만든 테이블에 일부 값을 삽입하려고하는데 오류가 발생했습니다. 1064. 구문의 모든 부분을 변경했습니다. 여기가 내 단말기에 입력 된 한 것을 그대로입니다 :이상한 오류를주는 MySQL INSERT 구문

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); 

나는이 구문 오류가 있음을 알고이 시점에서

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은 나에게 오류를 반환합니다. 그러나 내 값 구문을 변경해도 오류에 전혀 영향을 미치지 않는 것 같으며 오류를 막을 수있는 방법이 없습니다. 나는 내가 생각할 수있는 따옴표 또는 틱의 모든 다른 유형의 모든 값과 초기 열을 둘러 보았습니다. 나는 혼란스러워, 여기서 무슨 일이 일어난거야?

감사합니다.

답변

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 예약 키워드를 사용하지 마십시오.

+0

도움을 주셔서 감사합니다! 나는 몰랐다. 나는 MySQL을 사용하는 방식으로 MySQL을 처음 사용했다. –

2

INSERT 문에 "Match"라는 단어를 넣어야합니다. "라고 생각합니다.