MySQL CREATE TRIGGER IF变量大于设定值误差1064

时间:2017-04-24 02:26:05

标签: mysql syntax-error

我一直在搜索这个网站和谷歌超过一个小时试图找出我收到此消息的原因:

  

错误代码:1064。您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   使用语法附近' @msg ='高价值客户 - 销售额大于   $ 10K' IF(SALES> 10000)那么'在第5行

...运行SQL以创建此触发器时:

CREATE TRIGGER TOP_CUSTOMERS
AFTER INSERT ON ORDERS
FOR EACH ROW BEGIN
DECLARE msg VARCHAR(100)
    @msg = 'HIGH VALUE CUSTOMER - SALES GREATER THAN $10K'
IF (SALES > 10000) THEN
    SET CUSTOMERNOTES = @msg 
ENDIF

这是针对明天午夜到期的作业而且我很难过,因为我尝试过的所有内容与示例的语法相同,而且我没有尝试创建复杂的触发器。请帮忙!?!?!

2 个答案:

答案 0 :(得分:0)

这个查询有很多错误,语法,变量定义,分隔符等等......即使内部逻辑也不清楚,你应该首先阅读Object.create(),这里我只修复了一些语法错误:< / p>

 middle = Math.max(Math.min(a, b), Math.min(Math.max(a, b), c));

<强> 编辑:

DELIMITER ||
CREATE TRIGGER TOP_CUSTOMERS
AFTER INSERT ON ORDERS
FOR EACH ROW BEGIN
DECLARE msg VARCHAR(100) DEFAULT 'HIGH VALUE CUSTOMER - SALES GREATER THAN $10K';
    IF (SALES > 10000) THEN
        SET CUSTOMERNOTES = msg;
    END IF;
END;
||
DELIMITER ;

答案 1 :(得分:0)

我最终搞清楚了......这里有什么对我有用:

DELIMITER ||
CREATE TRIGGER TOP_CUSTOMERS
AFTER INSERT ON ORDERS
FOR EACH ROW BEGIN
DECLARE CUSTOMERNOTES VARCHAR(100);
    IF (SALES > 10000) THEN
        SET CUSTOMERNOTES = 'HIGH VALUE CUSTOMER - SALES GREATER THAN $10K';
    END IF;
END;
||
DELIMITER ;

感谢所有回复的人指出我正确的方向。