2012-01-16 2 views
-1

Java 웹 서비스 작업 내에서 JDBC를 사용하여 MySQL 데이터베이스를 처리하려고합니다.JDBC 1064 SQL 구문 오류

stmt = conn.createStatement(); 

String query = "CREATE TABLE Basestations (Network_Id INT," 
        + "Basestation_Id INT, Signal_Strength DOUBLE," 
        + "Frequency DOUBLE, Network_Type VARCHAR(40), Max_Bitrate DOUBLE," 
        + "Guaranteed_Bitrate DOUBLE, Net_Load INT," 
        + "Provider VARCHAR(45), Range DOUBLE, X INT, Y INT," 
        + "Port INT, Charging VARCHAR(40), Active BOOLEAN);"; 

stmt.execute(query); 

내 테이블을 작성,하지만이 발생합니다 : 내가 가진

INFO: SQL Exception: INFO: State : 42000 INFO: Message: 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 'Range DOUBLE, X INT, Y INT,Port INT, Charging VARCHAR(40), Active BOOLEAN)' at line 1 INFO: Error : 1064

내 구문에 문제가 있나요?

답변

1

RANGEreserved keyword is MySQL입니다. ''대신 ' (backtick)으로 묶습니다.

String query = "CREATE TABLE Basestations (Network_Id INT," 
        + "Basestation_Id INT, Signal_Strength DOUBLE," 
        + "Frequency DOUBLE, Network_Type VARCHAR(40), Max_Bitrate DOUBLE," 
        + "Guaranteed_Bitrate DOUBLE, Net_Load INT," 
        + "Provider VARCHAR(45), `Range` DOUBLE, X INT, Y INT," 
        + "Port INT, Charging VARCHAR(40), Active BOOLEAN);"; 
1

범위는 MySQL reserved word입니다. 백틱 '' '을 사용하여이 필드 이름을 인용하십시오.

+0

방금 ​​말했습니다. –

+0

게시 직후 귀하의 답변을 읽었습니다;) 내 대답을 제거 할 수 있거나 귀하의 답변을 수락하도록 니코 수 있습니다. – Devart

+0

멋지다. 그것은 우리의 대답이 합법적임을 보여줍니다. :-) –