2012-09-11 207 views
2

这是怎么回事? 在Gentoo系统上成功执行此操作,但现在在Debian-Squeeze(Raspberry PI)上无法运行。mysql - 错误1064(42000)

数据库是建立好吧

mysql> show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| arduino1   | 
| mysql    | 
| performance_schema | 
| test    | 
| tmp    | 
+--------------------+ 
6 rows in set (0.01 sec) 

mysql> 

命令是:

#mysql -u root -p******* arduino1 < arduino-tables.sql 

结果造成:

ERROR 1064 (42000) at line 1: 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 '(8), 
    currentTime DATETIME, 
    timeDiff INT(10), 
    unixTime INT(10), 
    currentR1 FL' at line 3 

Arduino的tables.sql的内容:

#cat arduino-tables.sql: 

CREATE TABLE pulseLog (
    id INT(10) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    timeStamp TIMESTAMP(8), 
    currentTime DATETIME, 
    timeDiff INT(10), 
    unixTime INT(10), 
    currentR1 FLOAT, 
    currentS2 FLOAT, 
    currentT3 FLOAT, 
    currentAverageR1 FLOAT, 
    currentAverageS2 FLOAT, 
    currentAverageT3 FLOAT, 
    temp0 FLOAT, 
    temp1 FLOAT, 
    temp2 FLOAT, 
    temp3 FLOAT, 
    temp4 FLOAT, 
    temp5 FLOAT, 
    pulses INT, 
    event char(255), 
) CHARACTER SET UTF8; 

回答

2

有。

试试这个:

CREATE TABLE pulseLog (
    id INT(10) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    `timeStamp` TIMESTAMP, 
    `currentTime` DATETIME, 
    `timeDiff` INT(10), 
    `unixTime` INT(10), 
    `currentR1` FLOAT, 
    `currentS2` FLOAT, 
    `currentT3` FLOAT, 
    `currentAverageR1` FLOAT, 
    `currentAverageS2` FLOAT, 
    `currentAverageT3` FLOAT, 
    `temp0` FLOAT, 
    `temp1` FLOAT, 
    `temp2` FLOAT, 
    `temp3` FLOAT, 
    `temp4` FLOAT, 
    `temp5` FLOAT, 
    `pulses` INT, 
    `event` char(255) 
) CHARACTER SET UTF8; 

这里是SQL Fiddle DEMO

编辑:

除此之外,您的时间戳语法不被支持。 仅供参考日期,日期时间和时间戳check here

+0

就是这样!谢谢你们俩。愚蠢的错误,但奇怪的是我的Gentoo系统购买了它... – jonsag

2

您正在使用的关键字是datatype。其中一些错字的错误,好像timestamp是一个关键的词,你 event char(255),之后有一个额外的逗号,你可以做到这一点通过转义它使用backtick例如

CREATE TABLE pulseLog (
    id INT(10) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    `timeStamp` TIMESTAMP(8), 
    `currentTime` DATETIME, 
    `timeDiff` INT(10), 
    `unixTime` INT(10), 
    currentR1 FLOAT, 
    currentS2 FLOAT, 
    currentT3 FLOAT, 
    currentAverageR1 FLOAT, 
    currentAverageS2 FLOAT, 
    currentAverageT3 FLOAT, 
    temp0 FLOAT, 
    temp1 FLOAT, 
    temp2 FLOAT, 
    temp3 FLOAT, 
    temp4 FLOAT, 
    temp5 FLOAT, 
    pulses INT, 
    event char(255), 
) CHARACTER SET UTF8; 
+0

对不起,我这样做 – jonsag