【问题标题】:Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL serve错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务相对应的手册
【发布时间】:2019-12-14 16:06:02
【问题描述】:

我正在尝试执行以下代码,但不确定我哪里出错了。 Mysql 工作台为以下代码抛出错误

Insert into abc(Date,Close_Price,Signal)
Select
    Date,
    close_price,
    case 
        when dayma_20 > dayma_50 then 'BUY'
        when dayma_20 < dayma_50 then 'SELL'
        else 'HOLD'
    end as Signal
from stock;

报错如下:

错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在“信号”附近使用正确的语法)选择日期、关闭价格、dayma_20 > dayma_50 时的情况,然后在第 1 行 d 时选择“购买”

【问题讨论】:

  • 目前尚不清楚为什么您在“from”子句之前在 insert 周围加上引号。无论如何,这似乎是一个简单的错字。如果不是,请正确重新格式化问题。

标签: mysql sql database sql-insert


【解决方案1】:

SIGNALMySQL reserved word。您需要将其括在反引号之间(顺便说一下,这使其区分大小写,这意味着您必须使用与创建表时使用的相同的大小写)。

insert into abc(Date,Close_Price,`Signal`) select ...

更好的选择是将该列重命名为未保留的名称。在模式中使用保留字作为对象名称既乏味又容易出错。

旁注:DATE 也是保留字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-14
    • 2017-06-30
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 2017-09-20
    • 2021-12-03
    • 2018-11-28
    相关资源
    最近更新 更多