2014-02-26 79 views
0

我想用mySQL和Java創建一個表。我所擁有的是:使用整數時,mySQL語法錯誤

String sql = "CREATE TABLE IF NOT EXISTS " + Userinput.getTableName2() + 
" (participant INT(255), " + 
" 0 INT(255),"+ 
" name INT(3), " + 
" occurances INT(255))"; 
stmt.executeUpdate(sql); 

零命名第二列是任意的,但我需要有列名是一個整數。 我得到的錯誤是:

您的SQL語法錯誤;檢查手冊中 對應於你的MySQL服務器版本正確的語法使用 接近 '0 INT(255),名INT(3),occurances INT(255))' 在1號線

我會感謝任何和所有的幫助!謝謝!

回答

4

根據這一http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

標識符可以以數字開始,但除非報價可能不是由 完全的數字。

所以你要引用0

String sql = "CREATE TABLE IF NOT EXISTS " + Userinput.getTableName2() + 
" (participant INT(255), " + 
" `0` INT(255),"+      // using backticks 
" name INT(3), " + 
" occurances INT(255))"; 
stmt.executeUpdate(sql); 

雖然,它似乎是一個列啞名。

+0

引用標識符的更好方法是使用反引號。引用文檔:「標識符引用字符是反引號(」'「)」(http://dev.mysql.com/doc/refman/5.7/en/identifiers.html)。 –

+0

嗨,我曾嘗試根據文檔添加單引號,但是當我這樣做時,我收到了一個非常類似的錯誤。 「MySQL服務器版本的正確語法使用'第1行'0'INT(255),名稱INT(3),發生INT(255))'」 – user3353778

+0

@GordonLinoff使用backsticks似乎可以解決我的錯誤!謝謝!並感謝您的建議user2310289! – user3353778