>我正在尝试执行以下代码,但不确定哪里出错了。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服务器版本相对应的手册,了解在"信号"附近使用的正确语法( 选择日期,close_price,dayma_20> dayma_50时的情况,然后在第 1 行的 d' 时选择"买入">
SIGNAL
是一个MySQL保留字。您需要将其括在反引号之间(顺便说一下,这使它区分大小写,这意味着您必须使用与创建表时使用的大小写相同的大小写(。
insert into abc(Date,Close_Price,`Signal`) select ...
更好的选择是将该列重命名为未保留的名称。在架构中使用保留字作为对象名称既繁琐又容易出错。
旁注:DATE
也是一个保留词。