mysql-使用关键字作为列名时出现错误1064(42000) [英] mysql - ERROR 1064 (42000) when using keywords as column name

查看:357
本文介绍了mysql-使用关键字作为列名时出现错误1064(42000)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是怎么了? 在Gentoo系统上成功运行了此操作,但现在在Debian-Squeeze(Raspberry PI)上无法运行.

What's wrong with this? Ran this successfully on a Gentoo system, but now on a Debian-Squeeze (Raspberry PI) it won't work.

数据库已正确设置

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的内容:

Content of 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),.

There where some typo errors, like timestamp is a key word, you had an extra comma after 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小提琴DEMO

除此之外,不支持您的时间戳语法. 有关日期,日期时间和时间戳的参考,请在此处检查

Apart from that your syntax for timestamp was not supported. For reference on date, datetime and timestamp check here

这篇关于mysql-使用关键字作为列名时出现错误1064(42000)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆