这是怎么回事?
在Gentoo系统上成功运行了这个,但是现在在Debian Squeeze(覆盆子皮)上就不行了。
数据库设置正确
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;
最佳答案
在有些输入错误的地方,比如timestamp
是一个关键字,你在后面有一个额外的逗号event char(255),
。
试试这个:
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