2012-03-22 15 views
0
CREATE TABLE `db`.`Complete` (

`CompleteId` MEDIUMINT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`HoursTaken` DOUBLE(5) NOT NULL , 
`DateFinished` DATETIME NOT NULL 
) ENGINE = MYISAM 

我試圖創建這個簡單表,但是,我得到一個錯誤。以上代碼是通過UI爲MySql數據庫生成的代碼MySQL的語法錯誤從自動生成的創作

我得到這個錯誤:

#1064 - 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 ') NOT NULL , 
`DateFinished` DATETIME NOT NULL 
) ENGINE = MYISAM' at line 4 

我不知道什麼改變。

+0

MySQL有沒有UI。你用什麼來拋出創建語句? 'show create table ...'不會在字段大小部分放置空格。例如它會生成'mediumint(8)',而不是'mediumint(8)'。 – 2012-03-22 19:23:08

+1

@Marc B - 它可能是MySQL Workbench或PHPMyAdmin? – Buggabill 2012-03-22 19:25:22

+1

@MarcB - 這是Starfield Technologies生成的腳本。 MySql沒有默認的UI,但這並不意味着它不存在UI。當然,這不是你的建議。 – 2012-03-22 19:26:20

回答

4

您需要將精度添加到DOUBLE數據類型,它應該是DOUBLE(5,n)我認爲。

+0

可能是這種情況,這個問題與DOUBLE定義完全相同。我通過使用float來解決問題。 – 2012-03-22 19:27:27

0

我解決了這個通過使用浮動而不是雙,這是所生成的代碼:

CREATE TABLE `db`.`Complete` (
`CompleteId` MEDIUMINT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`HoursTaken` FLOAT NOT NULL , 
`DateFinished` DATETIME NOT NULL 
) ENGINE = MYISAM