2012-09-11 211 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