2012-03-22 16 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