2012-01-16 15 views
-1

Java Webサービスの操作内から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

RANGEは、reserved keyword is MySQLである。むしろRange(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

これはクールです。私たちの答えが正当であることを示しています。 :-) –

関連する問題