【问题标题】:I am trying to create a mysql trigger, but not able to, dont know what the error is我正在尝试创建一个 mysql 触发器,但不能,不知道错误是什么
【发布时间】:2020-06-01 16:52:29
【问题描述】:

这是触发查询

    DELIMITER $$
CREATE TRIGGER adjust_ref_token
AFTER INSERT
    ON transactions FOR EACH ROW
DECLARE token_ref integer;

SELECT ico_stages.sales_token INTO @token_ref WHERE ico_stages.start_date <= NOW() <= ico_stages.end_date;

IF NEW.tnx_type = 'referral' THEN
    UPDATE ico_stages SET ico_stages.sales_token = (@token_ref - NEW.tokens) WHERE ico_stages.start_date <= NOW() <= ico_stages.end_date;
END IF;
END $$

错误显示是

    CREATE TRIGGER adjust_ref_token
AFTER INSERT
    ON transactions FOR EACH ROW
DECLARE token_ref integer;

SELECT ico_stages.sales_token INTO @token_ref WHERE ico_stages.start_date <= NOW() <= ico_stages.end_date;

IF NEW.tnx_type = 'referral' THEN
    UPDATE ico_stages SET ico_stages.sales_token = (@token_ref - NEW.tokens) WHERE ico_stages.start_date <= NOW() <= ico_stages.end_date;
END IF;
END

MySQL 说:文档

#1064 - 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 'DECLARE token_ref integer; 附近使用的正确语法;

在第 4 行选择 ico_stages.sales_token INTO @token_ref WHER'

谁能告诉我错误是什么?

【问题讨论】:

    标签: mysql database-trigger


    【解决方案1】:
    DELIMITER $$
    CREATE TRIGGER adjust_ref_token AFTER INSERT ON transactions
    FOR EACH ROW 
    BEGIN
        DECLARE token_ref integer;
    
        SELECT ico_stages.sales_token INTO @token_ref WHERE ico_stages.start_date <= NOW() <= ico_stages.end_date;
    
        IF NEW.tnx_type = 'referral' THEN 
            UPDATE ico_stages SET ico_stages.sales_token = (@token_ref - NEW.tokens) WHERE ico_stages.start_date <= NOW() <= ico_stages.end_date; 
        END IF;
    END; $$
    DELIMITER ;
    

    基本上如果你想在触发器中执行多个语句,你必须使用BEGIN...END 构造。 更多详情https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多